块存储(云盘)
https://help.aliyun.com/zh/ecs/user-guide/essds#concept-727754
块存储分为云盘和本地盘(数据中心物理服务器本地硬盘设备)。一般就是指云盘。
本地盘风险
本地盘存在单点故障的风险。ECS不建议用本地盘保存长期数据。
SKU
- 普通云盘
- 高校云盘
- SSD
- ESSD
- ESSD PL-X
- ESSD AutoPL
三副本
云盘==三副本机制==保证高可用性:底层三个副本被放在不同的机架上。是为了保护infra故障。人为删除是不能通过三副本恢复的。
常规操作
一块云盘只能同时挂载到==同一地域、同一可用区==的一台ECS实例。
ESSD多重挂载
- 您在创建ESSD云盘时,可以为云盘开启多重挂载功能,开启了多重挂载功能的NVMe(Non-Volatile Memory Express)云盘称为==NVMe共享盘==。NVMe共享盘可以同时挂载到同可用区内的多台支持NVMe协议的ECS实例上(最多支持挂载==16台==实例),从而实现多台ECS实例对同一块ESSD云盘的并发读写访问。
- 为云盘开启多重挂载功能后,建议使用集群文件系统,例如OCFS2、GFS2、Veritas CFS、Oracle、ACFS和DBFS等。
扩容
- 外面扩盘
- OS里面扩分区 (云助手可以自动化执行)
扩容建议
建议一块盘就分一个区,因为扩容的时候仅支持扩容最后一个分区。分多个区反而会麻烦
- OS里面扩文件系统 (云助手可以自动化执行)
云盘的分区类型:
- Disk label type值为dos表示==MBR分区==,值为gpt表示==GPT分区==。
不同操作系统的显示略有不同。如果没有Disk label type字段,可通过System字段判断:
- System值为Linux表示MBR分区,值为GPT表示GPT分区。
较低版本的fdisk可能不能正常显示GPT分区表。您可以通过gdisk -l /dev/vdb命令查看分区类型。
新建盘
- 新建盘会通过资源编排ROS完成磁盘创建
- 可以通过云助手自动挂载到某个目录
ext4 lazy init
ext4文件系统的lazy init功能会影响数据盘的I/O性能,您可以关闭ext4文件系统的lazy init功能。
快照
快照是某一时间点云盘数据状态的备份文件。云盘第一份快照是实际使用量的==全量快照==,不备份空数据块,后续创建的快照均是==增量快照==,只存储变化的数据块。
应用一致性快照
https://help.aliyun.com/zh/ecs/user-guide/create-application-consistent-snapshots-in-the-ecs-console/#task-2058263
需要自己写脚本告诉怎么检查数据一致性。如果脚本检查通过,就标记为==应用一致性快照==,否则就是==文件系统一致性快照==。
应用场景
- 容灾备份
- 环境复制
- 提高容错率
增量和全量
快照分为全量快照和增量快照。云盘创建的第一个快照是全量快照,不备份空数据块(20G的盘用了5G,全量就是备份5G)。后续创建的快照均是增量快照,仅备份上一个快照以来有变化的数据块。
快照回滚
全量快照和增量快照的元信息中均会存储==全量的数据块信息==,因此在通过任一快照回滚云盘时,均可以恢复对应历史时间点所有的云盘数据。
云盘初始化后会在逻辑块地址LBA(Logical Block Address)的基础上划分数据块(Block)作为快照数据备份最小粒度,一旦数据块有业务数据写入,就将参与计量。云盘的数据写入和修改不会对已创建的快照造成影响,快照也不会影响原云盘的数据。
第一个快照删除之后,全量快照的属性会顺延到后面一个增量快照。如果此时磁盘没快照,那么下次快照就变成全量快照
快照链和快照容量
云盘的快照总容量以快照链(一块云盘中所有快照组成的关系链)为粒度进行统计,统计当前云盘所有快照的数据块占用的存储空间。快照容量涉及的概念说明如下:
- 快照全量大小:单个快照所有数据块占用的存储空间大小。
- 快照增量大小:当前快照与同一快照链中上一份快照之间不同的数据块占用的存储空间大小。
- 快照总容量:第一份快照(即全量快照)的全量大小与后续所有增量快照的增量大小之和。
快照容量可能大于云盘使用量
快照链的总容量可能会大于云盘的使用量
快照不保存在云盘中,不会占用云盘空间,会按照快照容量收取快照存储费用(分地域计费)。
快照和操作系统
快照容量会以固定大小的数据块(Block)作为快照数据备份最小粒度,以此来计算快照容量大小。
当用户在云盘内进行删除文件操作时,系统显示的容量会减少,但通常对于操作系统的文件系统来说,删除文件仅是标记文件为删除,并不会真正的物理删除该文件对应的数据,所以对于云盘来说,删除文件也是一个写入操作,并不会减少云盘真正的数据占用空间,相应的如果此时创建快照,快照依然会包含该删除文件对应的数据块。除非操作系统内的文件系统真正做了文件删除,详细您可以了解文件系统==TRIM机制==。
快照容量增长
- 用户无主动写入系统盘的行为,但快照容量依然可能增长。操作系统在运行时会产生系统文件,同样会写入云盘,备份在快照中。
- 一份快照的容量大小可能略大于云盘写入数据的大小。因为文件系统的一些元数据信息会占用云盘空间,快照的数据块会包含该元数据信息及用户写入的真实数据信息。
快照一致性组
系统盘A,数据盘B,数据盘C。有软件基于A,B,C 3个盘做存储。同一时间手动给A、B、C打快照。经过一段时间后,需要回滚快照,此时再同时回滚A、B、C盘,应用或系统有可能出问题。因为不能保证打快照期间三个盘的数据一致性。
快照一致性组
通过创建快照一致性组,您可以为一台或多台ECS实例中的多块云盘同时创建快照。
快照一致性组能够保证在业务系统跨多块云盘的场景下,数据写入云盘的==时序一致性==,并保证其==崩溃一致性==。
典型应用场景:
- 业务系统部署在跨ECS实例的集群文件系统中,且要求时序一致性以及崩溃一致性的数据库或企业级应用的场景。例如,基于ECS自建的MySQL集群,基于多个卷搭建LVM、Oracle、SAP HANA上云场景等。
- 大型网站、多应用协同系统等分布式应用系统所需的统一创建快照的场景。
- 需要对同一地域下多台ECS实例的云盘数据进行批量备份,且对时序一致性有较高要求的场景。
镜像
ECS镜像根据来源不同,分为公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像。
镜像的地域限制
镜像是一种==地域性资源==,您不能跨地域使用镜像创建实例。如需使用其他地域镜像创建实例,可先将其他地域的镜像复制到当前地域。
SMC迁移工具可以很方便的将镜像迁移到阿里云