将 LVM 分区迁移到新逻辑卷(驱动器) - 第 VI 部分
这是我们正在进行的逻辑卷管理系列的第六部分,在本文中,我们将向您展示如何在不停机的情况下将现有逻辑卷迁移到其他新驱动器。在进一步讨论之前,我想向您解释一下LVM 迁移及其功能。
什么是 LVM 迁移?
LVM 迁移是一项出色的功能,我们可以将逻辑卷迁移到新磁盘,而不会丢失数据和停机。此功能的目的是将我们的数据从旧磁盘移动到新磁盘。通常,只有当某些磁盘出现错误时,我们才会从一个磁盘迁移到其他磁盘存储。
移民的特点
- 将逻辑卷从一个磁盘移动到另一磁盘。
- 我们可以使用任何类型的磁盘,如 SATA、SSD、SAS、SAN 存储、iSCSI 或 FC。
- 迁移磁盘,不会丢失数据,也不会造成停机。
在 LVM 迁移中,我们将交换现有存储中的每个卷、文件系统及其数据。例如,如果我们有一个逻辑卷,它已映射到其中一个物理卷,则该物理卷就是物理硬盘驱动器。
现在如果我们的服务器需要升级SSD硬盘,我们首先会想到什么?重新格式化磁盘?不!我们不必重新格式化服务器。 LVM 可以选择将旧的 SATA 驱动器迁移到新的 SSD 驱动器。实时迁移将支持任何类型的磁盘,无论是本地驱动器、SAN 还是光纤通道。
要求
- 使用逻辑卷管理创建灵活的磁盘存储 - 第 1 部分
- 如何在 Linux 中扩展/减少 LVM – 第 2 部分
迁移LVM分区(存储)有两种方法,一种是使用镜像方法,另一种是使用pvmove命令。为了演示目的,这里我使用的是 Centos6.5,但 RHEL、Fedora、Oracle Linux 和 Scientific Linux 也可以支持相同的指令。
我的服务器设置
Operating System : CentOS 6.5 Final
IP Address : 192.168.0.224
System Hostname : lvmmig.tecmintlocal.com
第 1 步:检查当前驱动器
1. 假设我们已经有一个名为“vdb”的虚拟驱动器,它映射到逻辑卷“howtoing_lv”之一。现在我们想要将此“vdb”逻辑卷驱动器迁移到其他新存储。在进一步操作之前,首先借助 fdisk 和 lvs 命令验证虚拟驱动器和逻辑卷名称,如图所示。
fdisk -l | grep vd
lvs
步骤 2:检查新添加的驱动器
2. 一旦我们确认了现有的驱动器,现在就可以将新的 SSD 驱动器连接到系统并借助 fdisk 命令验证新添加的驱动器。
fdisk -l | grep dev
注意:您是否在上面的屏幕中看到,新驱动器已成功添加,名称为“/dev/sda”。
步骤 3:检查当前逻辑和物理卷
3. 现在继续创建用于迁移的物理卷、卷组和逻辑卷。在创建卷之前,请务必检查 /mnt/lvm 挂载点下当前的逻辑卷数据。使用以下命令列出安装并检查数据。
df -h
cd /mnt/lvm
cat tecmint.txt
注意:出于演示目的,我们在 /mnt/lvm 挂载点下创建了两个文件,并将这些数据迁移到新的无需任何停机即可驾驶。
4. 在迁移之前,请务必确认与物理卷相关的逻辑卷和卷组的名称,并确认用于保存该卷组和逻辑卷的物理卷。
lvs
vgs -o+devices | grep tecmint_vg
注意:您在上面的屏幕中看到了吗,“vdb”包含卷组howtoing_vg。
第4步:创建新的物理卷
5. 在新添加的 SSD 驱动器中创建物理卷之前,我们需要使用 fdisk 定义分区。创建分区时,不要忘记将类型更改为 LVM(8e)。
pvcreate /dev/sda1 -v
pvs
6.接下来,使用“vgextend命令”将新创建的物理卷添加到现有卷组howtoing_vg
vgextend tecmint_vg /dev/sda1
vgs
7. 要获取有关卷组的完整信息列表,请使用“vgdisplay”命令。
vgdisplay tecmint_vg -v
注意:在上面的屏幕中,我们可以在结果末尾看到我们的 PV 已添加到卷组中。
8. 如果以防万一,我们需要了解有关映射哪些设备的更多信息,请使用“dmsetup”依赖项命令。
lvs -o+devices
dmsetup deps /dev/tecmint_vg/tecmint_lv
在上面的结果中,有 1 个依赖项 (PV) 或(驱动器),此处列出了 17 个。如果您想确认查看设备,其中连接了主要和次要数量的驱动器。
ls -l /dev | grep vd
注意:在上面的命令中,我们可以看到主号码252和次号码17是相关的到vdb1。希望您从上面的命令输出中理解。
第五步:LVM镜像方法
9. 现在是时候使用镜像方法进行迁移了,使用“lvconvert”命令将数据从旧逻辑卷迁移到新驱动器。
lvconvert -m 1 /dev/tecmint_vg/tecmint_lv /dev/sda1
- -m=镜像
- 1=添加单个镜像
注意:根据我们的卷大小,上述迁移过程将需要很长时间。
10. 迁移过程完成后,验证转换后的镜像。
lvs -o+devices
11.一旦确定转换后的镜像完美,就可以删除旧的虚拟磁盘vdb1。选项-m将删除镜像,之前我们使用1来添加镜像。
lvconvert -m 0 /dev/tecmint_vg/tecmint_lv /dev/vdb1
12.删除旧虚拟磁盘后,您可以使用以下命令重新检查逻辑卷设备。
lvs -o+devices
dmsetup deps /dev/tecmint_vg/tecmint_lv
ls -l /dev | grep sd
在上图中,您是否看到我们的逻辑卷现在依赖于8、1并且有sda1。这表明我们的迁移过程已经完成。
13.现在验证我们已从旧驱动器迁移到新驱动器的文件。如果新驱动器上存在相同的数据,则意味着我们已经完美地完成了每一步。
cd /mnt/lvm/
cat tecmin.txt
14.一切完美创建后,现在是时候从卷组中删除vdb1并稍后确认,哪些设备取决于我们的卷组。
vgreduce /dev/tecmint_vg /dev/vdb1
vgs -o+devices
15. 从卷组 howtoing_vg 中删除 vdb1 后,我们的逻辑卷仍然存在,因为我们已将其从 vdb1 迁移到 sda1 。
lvs
第6步:LVM pvmove镜像方法
16. 我们不使用“lvconvert”镜像命令,而是使用带有选项“-n”的“pvmove”命令>'(逻辑卷名称)方法在两个设备之间镜像数据。
pvmove -n /dev/tecmint_vg/tecmint_lv /dev/vdb1 /dev/sda1
该命令是在两个设备之间镜像数据的最简单方法之一,但在实际环境中,镜像比pvmove更常用。
结论
在本文中,我们了解了如何将逻辑卷从一个驱动器迁移到另一个驱动器。希望您已经学到了逻辑卷管理的新技巧。对于这样的设置,必须了解逻辑卷管理的基础知识。有关基本设置,请参阅文章顶部要求部分提供的链接。