块存储,简单来说就是提供了块设备存储的接口。用户需要把块存储卷附加到虚拟机或者裸机上以与其交互。这些卷都是持久的:它们可以从运行实例上被解除或者重新附加而数据保持完整不变。
本文重点介绍块存储服务。我们对目前主流的块存储服务提供商和开源的块存储软件做了一个简要分析,希望能给从事块存储开发的工程师对于块存储一个全局的认识。
下面会先介绍常见的单机块设备工具,以建立对块存储的初步印象。
单机块存储
首先,一个硬盘是一个块设备。内核检测到硬盘后,在/dev/下会看到/dev/sda/。为了用一个硬盘来得到不同的分区来做不同的事,我们使用fdisk工具得到/dev/sda1、/dev/sda2等。这种方式通过直接写入分区表来规定和切分硬盘,是最死板的分区方式。
1. LVM & Device-mapper
LVM是一种逻辑卷管理器。通过LVM来对硬盘创建逻辑卷组和得到逻辑卷,要比fdisk方式更加弹性。如果你目前对LVM用途还不熟悉或者不大清楚,可参考以下链接:
通用线程:学习 Linux LVM,第 1 部分
通用线程:学习 Linux LVM,第 2 部分
LVM基于Device-mapper用户程序实现。Device-mapper是一种支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构。以下链接对Device-mapper架构进行了极好的说明:
Linux 内核中的 Device Mapper 机制
2. SAN & iSCSI
在接触了单机下的逻辑卷管理后,你需要了解SAN,目前主流的企业级存储方式。
大部分SAN使用SCSI协议在服务器和存储设备之间传输和沟通,通过在SCSI之上建立不同镜像层,可以实现存储网络的连接。常见的有iSCSI,FCP,Fibre Channel over Ethernet等。
SAN通常需要在专用存储设备中建立,而iSCSI是基于TCP/IP的SCSI映射,通过iSCSI协议和Linux iSCSI项目,我们可以在常见的PC机上建立SAN存储。
对于如何建立在PC机上的SAN,可以
转载请注明:IT运维空间 » 运维技术 » 从OpenStack的角度看块存储的世界
发表评论