共享云硬盘是一种支持多个云服务器并发读写访问的数据块级存储设备,具备多挂载点、高并发性、高性能、高可靠性等特点。主要应用于需要支持集群、HA(High Available,指高可用集群)能力的关键企业应用场景,多个云服务器可同时访问一个共享云硬盘。
一块共享云硬盘最多可同时挂载至16台云服务器,云服务器包括弹性云服务器和裸金属服务器。实现文件共享需要搭建共享文件系统或类似的集群管理系统,例如Windows MSCS集群、Veritas VCS集群和CFS集群等。
使用共享云硬盘必须搭建共享文件系统或类似的集群管理系统。直接挂载至多台云服务器无法实现共享功能,且存在数据覆盖风险。
由于多数常见集群需要使用SCSI锁,例如Windows MSCS集群、Veritas VCS集群和CFS集群,因此建议您结合SCSI模式使用共享云硬盘。若SCSI云硬盘挂载给虚拟化类型为XEN的ECS,则需要安装驱动,具体请参见磁盘模式及使用方法。
反亲和性和SCSI锁的相关概念:
关于云服务器组,更多详情请参见管理云服务器组。
共享云硬盘的规格性能与非共享云硬盘规格性能一致,详情请参见磁盘类型及性能介绍。
共享云硬盘本质是将同一块云硬盘挂载给多个云服务器使用,类似于将一块物理硬盘挂载给多台物理服务器,每一台服务器均可以对该硬盘任意区域的数据进行读取和写入。如果这些服务器之间没有相互约定读写数据的规则,比如读写次序和读写意义,将会导致这些服务器读写数据时相互干扰或者出现其他不可预知的错误。
共享云硬盘为云服务器提供共享访问的块存储设备,但其本身并不具备集群管理能力,因此需要您自行部署集群系统来管理共享云硬盘,如企业应用中常见的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锁,但是需要在云服务器系统中安装驱动并保证镜像在兼容性列表中。
直接将共享云硬盘挂载给多台云服务器无法实现文件共享功能,如需在多台云服务器之间共享文件,需要搭建共享文件系统或类似的集群管理系统。
阿里云天池读书会六月场来啦 这次我们邀请到了七月在线AI Lab负责人陈亮老师 浙...
如果业务量集中,您可以将数张预留实例券合并为一张计算力更大的预留实例券,匹...
二级 域名 能备案吗?首先需要了解什么是二级域名,二级域名是处于顶级域名之下...
托管服务器时应注意哪些问题 俗话说“男怕入错行,女怕嫁错郎”,这对于网站建设...
本期导读 【JindoTable 计算加速】第二十讲 主题 Spark 对 OSS 上的 ORC 数据进...
本文以CentOS 7.8系统为例介绍如何修改Linux系统的ECS实例的时区,以及如何开启...
Web Function 使用体验 (请在 PC 端访问) Web Function 产品文档:https://clo...
本文转载自微信公众号「Java极客技术」,作者鸭血粉丝 。转载本文请联系Java极客...
框架源码是我们 Coding 晋级中的必修课,SSM 应该算是小伙伴们日常接触最多的框...
也在 H5-Dooring 项目中做了很多技术实现, 包括: 搭建平台的组件设计和分类模式 ...