关于meta-disk
metadata包含DRBD设备的大小、Generation Identifier、活动日志、quick-sync bitmap。metadata可以存放在内部或外部,即通过meta-disk来设置。
1)internal meta data
这种情况metadata和实际数据存放在同一个设备上,在设备末端会留出一个区域存放元数据。
优点:元数据和实际数据联系比较紧密,出现硬盘故障时无需做特殊动作。
缺点:底层设备是一个单独的物理硬盘,内部元数据可能会影响吞吐量。应用写入请求会触发元数据更新。如果元数据存放在硬盘的相同碟片上,写入操作可能会导致硬盘读写头两次额外的动作。
如果想要在已经存在数据的底层设备上使用internal metadata,必须为metadata留空间。创建DRBD资源时,新建的元数据会写到底层设备的末端,可能会损坏已存在的文件。通过如下几种途径避免:
- 保证底层设备有足够的空间。(如LVM扩LV之类,缩小文件系统)
- 如果无法保证,就要使用external meta data。
2)external meta data
这种情况metadata存在在独立的分区。
优点:在写入操作时,可以提高性能。
缺点:元数据和实际数据联系不紧密,就是指当出现硬件故障且只损坏了实际生产数据时,需要进行人工干预来从存活节点上做一个完整的数据同步到后来替换的硬盘。
如果DRBD复制一个已经存放重要数据的设备,而且这个设备不支持扩容或文件系统无法缩小,那外部元数据是唯一的可选方式。
3)估计元数据大小的方法(DRBD8.4)
Cs指设备以扇区为单位的大小,可以通过blockdev --getsz <device>来获取。