我是一名资深的 PHP 开发人员,必须处理以下系统管理问题。
我们有一个运行 Xen (xen-hypervisor-4.4-amd64 4.4.0-0ubuntu5.1) 的 Ubuntu (Ubuntu 14.04.1 LTS) 服务器。
它有两个物理磁盘(250GB 和 2TB),每个磁盘都包含一个 LVM 文件系统(/dev/sdb 是旧的 250GB,/dev/sda 是新的 2TB)。
root@xen:~# pvscan
PV /dev/sdb3 VG tiffany-vg lvm2 [232.17 GiB / 85.48 GiB free]
PV /dev/sda5 VG xen-vg lvm2 [1.82 TiB / 1.77 TiB free]
Total: 2 [2.05 TiB] / in use: 2 [2.05 TiB] / in no VG: 0 [0 ]
Run Code Online (Sandbox Code Playgroud)
我需要将组“tiffany-vg”移动到新的/更大的磁盘 (/dev/sda),目的是从服务器中删除旧的 250GB 物理磁盘。目标磁盘已包含另一个名为“xen-vg”的 LVM 组,该组必须保持独立。
我想将“tiffany-vg”移动到 /dev/sda 上的“xen-vg”旁边,我真的需要不要丢失任何数据!我真的不想造成任何数据丢失吗?
我可能用错了一些术语,我相信你明白我想说的。
更新:
“目标”磁盘(/dev/sda)当前看起来像这样......
root@xen:~# parted /dev/sda
#...snip
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 2000GB 2000GB extended
5 257MB 2000GB 2000GB logical lvm
Run Code Online (Sandbox Code Playgroud)
卷组可以有多个物理磁盘(或者在您的情况下是分区)。
首先,您的较大磁盘上需要有空间 ( /dev/sda)。
您在帖子中没有提到这一点,但根据您的问题,我假设您可以腾出空间,然后添加一个我们将调用的新分区:/dev/sdaX
更新后扩展:
您可以/dev/sda通过简单地合并卷组来腾出空间,但您不想这样做 - 正如您在原始帖子中所述。你需要做的实际上比这更简单。
按着这些次序:
步骤-5:减少物理卷,/dev/sda5为新分区腾出空间:
pvresize /dev/sda5 -L 1500G
Run Code Online (Sandbox Code Playgroud)
步骤-4:使用parted将大小减小/dev/sda5到1600G(是的,比我们使用的大一点pvresize!)
步骤-3:使用新的可用空间(大约400G)parted创建一个新分区。/dev/sda6
步骤-2:检查内核是否能够自动检测分区变化。查看是否/proc/partition与新状态匹配(因此/dev/sda6可见)。如果没有,您需要重新启动。(可能会的。)
步骤-1:您可以/dev/sda5再次使其变得尽可能大:
pvresize /dev/sda5
Run Code Online (Sandbox Code Playgroud)
步骤0:格式化/dev/sda6为物理卷:
pvcreate /dev/sda6
Run Code Online (Sandbox Code Playgroud)
从这一点来说,/dev/sda6就是我们的/dev/sdaX。
延长端
首先:你应该给/dev/sdaX卷组tiffany-vg:
vgextend tiffany-vg /dev/sdaX
Run Code Online (Sandbox Code Playgroud)
其次:您应该在卷组 tiffany-vg 的(已经)两个物理卷之间移动所有数据:
pvmove tiffany-vg /dev/sdb3 /dev/sdaX
Run Code Online (Sandbox Code Playgroud)
/dev/sdb3第三:您应该从 tiffany-vg 卷组中删除:
vgreduce tiffany-vg /dev/sdb3
Run Code Online (Sandbox Code Playgroud)
注意:上面的第二步有点关键,请保持好奇。如果它是根分区,最好从救援光盘执行此操作。祝你好运!
如果您只是合并卷组
第 1 步:您只需将其合并xen-vg到您的tiffany-vg:
vgmerge tiffany-vg xen-vg
Run Code Online (Sandbox Code Playgroud)
第 2 步:将所有数据从/dev/sdb3移至/dev/sda5:
pvmove tiffany-vg /dev/sdb3 /dev/sda5
Run Code Online (Sandbox Code Playgroud)
/dev/sdb3步骤 3:从新的大卷组中删除:
vgreduce tiffany-vg /dev/sdb3
Run Code Online (Sandbox Code Playgroud)
但请注意:您的旧xen-vg卷组在这里结束了他的生命,并且其所有卷都移到了下面/dev/tiffany-vg。您需要更改系统配置中对它们的每个引用(您不太可能需要更改任何内容/etc/fstab)。
结尾