其他 LVM2 系统管理技巧最后, 我要介绍一些可以用 LVM2 执行的系统管理任务,包括按需虚拟化、用镜像提高容错能力以及透明地对块设备执行加密。
快照和虚拟化在使用 LVM2 时,快照可以不是只读的。这意味着,在创建快照之后, 可以像常规块设备一样挂载和读写快照。
因为流行的虚拟化系统(比如 Xen、VMWare、Qemu 和 KVM)可以将块设备用作 guest 映像,所以可以创建这些映像的完整拷贝,并根据需要使用它们,它们就像是内存占用量很低的虚拟机。这样做的好处是部署迅速(创建快照的时间常常不超过几秒)和节省空间(guest 共享原映像的大多数数据)。
设置的步骤如下:
- 为原映像创建一个逻辑卷。
- 使用这个 LV 作为磁盘映像安装 guest 虚拟机。
- 暂停这个虚拟机。内存映像可以是一个常规文件,所有其他快照都放在里面。
- 为原 LV 创建一个可读写的快照。
- 使用快照卷作为磁盘映像生成一个新的虚拟机。如果需要的话,要修改网络/控制台设置。
- 登录已经创建的虚拟机,修改网络设置/主机名。
完成这些步骤之后, 就可以让用户访问刚创建的虚拟机了。如果需要另一个虚拟机,那么只需重复步骤 4 到 6(所以不需要重新安装虚拟机)。还可以用一个脚本自动执行这些步骤。
在使用完虚拟机之后, 可以停止虚拟机并销毁快照。
更好的容错能力最近的 LVM2 开发成果为逻辑卷提供了高可用性。逻辑卷可以有两个或更多的镜像,镜像可以放在不同的物理卷(或不同的设备)上。当在设备上发现 I/O 错误时,可以使用 dmeventd 让一个 PV 离线,而不会影响服务。更多信息请参考 lvcreate(8)、lvconvert(8) 和 lvchange(8) 手册页。
如果硬件能够支持的话,可以用 dm_multipath 通过不同的通道访问同一设备,这样的话在一个通道发生故障时,可以转移到另一个通道。更多细节请参考 dm_multipath 和 multipathd 的文档。
透明的设备加密可以用 dm_crypt 对块设备或逻辑卷执行透明的加密。更多信息请参考 dm_crypt 的文档和 cryptsetup(8) 手册页。 |