在 CentOS 中合并单独的 /var 并将驱动器交换回 / 驱动器

在 CentOS 中合并单独的 /var 并将驱动器交换回 / 驱动器

最初在我公司设置 Web 服务器的天才将 swap、/var 和 / 目录放在不同的驱动器对上。我需要以某种方式将这三个目录合并到一个驱动器中以便进行迁移。我该如何开始呢?

这是 fstab:

/dev/VolGroupROOT/LogVolROOT /                       ext3    defaults        1 1
/dev/VolGroupVAR/LogVolVAR /var                    ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroupSWAP/LogVolSWAP swap                    swap    defaults        0 0

按照要求,在两者上均使用 vgdisplay:/dev/VolGroupROOT

/dev/hda: open failed: No medium found
--- Volume group ---
VG Name               VolGroupROOT
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  2
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               141.59 GB
PE Size               32.00 MB
Total PE              4531
Alloc PE / Size       4531 / 141.59 GB
Free  PE / Size       0 / 0
VG UUID               FyYBeE-ZPwK-Gaz0-yVEZ-wPEb-o8zH-zPCHES

/dev/VolGroupSWAP

/dev/hda: open failed: No medium found
--- Volume group ---
VG Name               VolGroupSWAP
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  2
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               2.91 GB
PE Size               32.00 MB
Total PE              93
Alloc PE / Size       93 / 2.91 GB
Free  PE / Size       0 / 0
VG UUID               LElLqf-VcS4-rv9T-9wQV-svWU-5AaY-CYIy08

答案1

鉴于 Linux 主要只是一堆文本文件,您应该能够根据需要复制文件。将您的服务器启动到某种救援 CD,将 /dev/VolGroupROOT/LogVolROOT 和 /dev/VolGroupVAR/LogVolVAR 安装到单独的目录中,复制,从 /etc/fstab(无论它安装在何处)注释掉 /var 行,然后重新启动。

就您而言,您需要将 /dev/VolGroupVAR/LogVolVAR 的内容复制到挂载 /dev/VolGroupROOT/LogVolROOT 的目录 var/ 中。请参阅手册页以cp了解rsync选项 - 您需要保留权限、遵循符号链接等。

不用担心交换,您可以在没有交换的情况下运行,稍后在不同位置重新添加交换。注释掉 fstab 中的任何交换行,请参阅swapon

进行现实检查以确保 ROOT 设备上有足够的空间容纳 VAR 中的所有内容,如果该服务器很重要,请先在另一台机器上尝试。

此外,将 /var、swap 或任何其他目录放在不同的文件系统上是有充分理由的,具体取决于它们的用途:跨磁盘主轴分离 i/o、分离磁盘使用、具有不同层的存储性能等。

答案2

以下是根据您的情况的步骤。

  • 如果你的 / 上没有足够的空间,请扩展你的 PV -> VG -> /dev/VolGroupROOT/LogVolROOT

  • 将其启动到单用户模式。

    • 在 fstab 中注释掉 /var
    • 创建 /var2 目录
    • ls -ld /var /var2
    • 确保 /var2 具有与 /var 相同的所有权和权限
    • 同步你的 /var -> /var2
    • 卸载 /var
    • rm -r /var
    • MV /var2 /var
  • 对于交换,您可以在上述 VG 中创建一个新的 LogicalVol。删除旧的并激活新的。

相关内容