共享云硬盘的数据共享原理和常见的使用误区

时间:2020-08-25 14:28:44

共享云硬盘本质是将同一块云硬盘挂载给多个云服务器使用,类似于将一块物理硬盘挂载给多台物理服务器,每一台服务器均可以对该硬盘任意区域的数据进行读取和写入。如果这些服务器之间没有相互约定读写数据的规则,比如读写次序和读写意义,将会导致这些服务器读写数据时相互干扰或者出现其他不可预知的错误。

共享云硬盘使用场景

共享云硬盘为云服务器提供共享访问的块存储设备,但其本身并不具备集群管理能力,因此需要您自行部署集群系统来管理共享云硬盘,如企业应用中常见的Windows MSCS集群、Linux RHCS集群、Veritas VCS集群和CFS集群应用等。

如果在使用共享云硬盘过程中未通过集群系统进行管理,可能会导致以下问题:

读写冲突导致数据不一致

当一个共享云硬盘同时挂载给两台云服务器时,云服务器 A和云服务器 B相互之间无法感知另一个云服务器已使用的存储空间,云服务器 A可能会对该云硬盘上已被云服务器 B使用的空间进行重复分配,从而发生空间分配冲突导致数据出错的情况。

比如,将一块共享云硬盘格式化为ext3文件系统后挂载给云服务器 A和云服务器 B,云服务器 A在某一时刻向云硬盘上的区域 R和区域 G写了文件系统的元数据,下一时刻云服务器 B又向区域 E和区域 G写了自己的元数据,则云服务器 A写入的数据将会被替换,随后读取区域 G的元数据时即会出现错误。

数据缓存导致数据不一致

当一个共享云硬盘同时挂载给两台云服务器时,若云服务器 A上的应用读取区域 R和区域 G的数据后将数据记录在缓存中,此时云服务器 A上的其他进程或线程访问该部分数据时,直接访问缓存中的数据即可。如果此时云服务器 B上的应用修改区域 R和区域 G中的数据,则云服务器 A上的应用无法感知该部分数据已被修改,依旧从缓存中读取数据,用户通过云服务器 A无法看到已修改的新数据。

比如,将一块共享云硬盘格式化为ext3文件系统后挂载给云服务器 A和云服务器 B,两台云服务器均将文件系统的元数据进行了缓存,此后用户在云服务器 A中创建了一个新的文件 F,但云服务器 B并无法感知该修改,依旧从缓存中读取数据,导致用户在云服务器 B中无法看到文件F。

如果您将共享云硬盘挂载到多个云服务器,首先请根据不同的应用选择不同的磁盘模式,包括VBD和SCSI。SCSI类型的共享云硬盘支持SCSI锁,但是需要在云服务器系统中安装驱动并保证镜像在兼容性列表中。


云硬盘 EVS

华为云云硬盘(Elastic Volume Service)是一种为ECS、BMS等计算服务提供持久性块存储的服务,通过数据冗余和缓存加速等多项技术,提供高可用性和持久性,以及稳定的低时延性能

价格低至¥0.30/GB/月起

云硬盘三副本技术||https://support.huaweicloud.com/productdesc-evs/evs_01_0056.html,磁盘类型及性能介绍||https://support.huaweicloud.com/productdesc-evs/zh-cn_topic_0044524691.html,初始化数据盘场景及磁盘分区形式介绍||https://support.huaweicloud.com/qs-evs/evs_01_0038.html,为什么登录到云服务器后看不到已挂载的数据盘||https://support.huaweicloud.com/evs_faq/evs_faq_0022.html,创建快照(公测)||https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0066615262.html

https://www.huaweicloud.com/product/evs.html

猜你喜欢