什么是共享云硬盘?
共享云硬盘允许多个云主机并发访问同一个云硬盘,实现多个实例之间的数据共享和协作。对云硬盘的共享访问通常应用于数据集群应用系统、分布式文件系统和高可用性架构等场景。
一块共享云硬盘支持同时挂载到最多16台云主机,其中云主机包括弹性云主机和物理机两种,目前共享云硬盘只支持共享数据盘,不支持共享系统盘。
注意
开启多重挂载功能的云盘并挂载至多台云主机后,如果使用ext4、xfs等单节点文件系统,多个云主机之间数据无法同步,会导致数据不一致等问题,建议您自行创建适用于业务的集群文件系统。集群文件系统能确保写入的数据、创建的文件、修改的元数据能够实时同步到所有挂载节点,从而在文件系统层保证数据的一致性,常用的集群文件系统包括OCFS2、GFS2、Veritas CFS、Oracle ACFS和DBFS等。
直接将共享云硬盘挂载给多台云主机无法实现文件共享功能,如需在多台云主机之间共享文件,需要搭建共享文件系统或类似的集群管理系统。
具体架构见图:
说明当前支持云硬盘共享功能的资源池为:重庆2/南宁2/成都4/芜湖2/九江/西宁2/拉萨3/海口2/佛山3/贵州3/福州3/上海7/杭州2/北京5/南京3/南京4/西安4/内蒙6/晋中/郴州2/武汉4/福州4/昆明2/西安5/南京5/华东1/南宁23/上海36/石家庄20/辽阳1/青岛20/武汉41/福州25/乌鲁木齐27/华北2/西南1/长沙42/中卫5/南昌5/华南2/西安7/太原4/郑州5/西南2-贵州/杭州7/西安3/庆阳2/乌鲁木齐7。
共享云硬盘的优点
- 多挂载点:单个共享云硬盘最多可同时挂载给16台云主机,既可以挂载至天翼云云主机,也可以挂载至天翼云物理机,灵活部署不同类型的工作负载。
- 高性能:高IOPS (Input/Output Operations Per Second),低时延,满足现代应用的需求。
共享云硬盘的规格性能
共享云硬盘的规格性能与普通云硬盘规格性能一致,详情请参见产品规格。
共享云硬盘的数据共享原理
共享云硬盘本质上就是将同一块云硬盘挂载到多台云主机上。由于每一台云主机均可以在任意时刻对该云硬盘任意区域的数据进行读写,如果这些云主机之间没有相互约定读写数据的规则,将会导致这些云主机读写数据时相互干扰,以致出现不可预知的错误。
想要确保云主机在访问过程中不互相干扰,确保读写次序和读写意义,必须通过一个集群来对读写进行集中管理与调度,因此用户在实际使用过程中务必确保自行部署集群系统,如企业应用中常见的Windows MSCS集群、Linux RHCS集群和CFS集群应用等。
如果使用共享云硬盘的过程中并没有通过集群进行管理,有可能导致以下问题:
- 读写冲突导致数据不一致
当两台弹性云主机同时挂载了同一块共享云硬盘却没有在一个集群系统中进行管理时,这两台云主机无法感知对方的具体存储空间是否已被使用,可能导致存储空间的重复分配,最终导致空间分配冲突使得数据出错的情况。
比如,将一块共享云硬盘格式化为ext3文件系统后挂载给云主机A和云主机B,云主机A在某一时刻向云硬盘上的区域C和区域D写了文件系统的元数据,下一时刻云主机B又向区域E和区域D写了自己的元数据,则云主机A写入的数据将会被替换,随后读取区域D的元数据时即会出现错误。 - 数据缓存导致数据不一致
当两台弹性云主机同时挂载了同一块共享云硬盘却没有在一个集群系统中进行管理时,其中一台假定为云主机A,另一台为云主机B,云主机A将读取来的数据记录在缓存区域中,云主机A上的其他进程读取数据时,可直接去读缓存区域的数据提高效率,而云主机B若修改了缓存区域的数据,云主机A是无法感知数据变化的,此时若继续读取缓存,则会导致读取的数据不一致情况。比如,将一块共享云硬盘格式化为ext3文件系统后挂载给云主机A和云主机B,两台云主机均将文件系统的元数据进行了缓存,此后用户在云主机A中创建了一个新的文件File,但云主机B并无法感知该修改,依旧从缓存中读取数据,导致用户在云主机B中无法看到文件File。
除此之外,还可能会导致存储性能下降,读写速度变慢,响应时间延长等问题。
共享云硬盘的使用方法
- 登录天翼云云硬盘控制台,进行创建云硬盘的操作,直接在“创建云硬盘”页面中创建。
- 在“创建云硬盘”窗口中,在高级配置中,勾选共享盘勾选框,来创建支持共享的云硬盘。
- 创建成功后,在云硬盘列表中为刚创建的共享盘来选择弹性云主机实例或物理机实例并单击挂载,可将该云硬盘挂载至同一可用区的多台弹性云主机或物理机。
- 在多台云主机或物理机实例上构建共享文件系统或其他集群系统实现数据共享。