我想在相同的服务器的每个安装中保持以下布局相同:
dm-0 /dev/VolGroup00/LogVol00
dm-1 /dev/VolGroup00/LogVol01
dm-2 /dev/VolGroup00/LogVol02
dm-3 /dev/VolGroup00/LogVol03
dm-4 /dev/VolGroup00/LogVol04
dm-5 /dev/VolGroup00/LogVol05
dm-6 /dev/VolGroup00/LogVol06
但在每个 RedHat 安装中,它都会以不同的顺序创建卷并格式化文件系统。例如;
dm-0 /dev/VolGroup00/LogVol0
dm-1 /dev/VolGroup00/LogVol02
dm-2 /dev/VolGroup00/LogVol03
dm-3 /dev/VolGroup00/LogVol04
dm-4 /dev/VolGroup00/LogVol05
dm-5 /dev/VolGroup00/LogVol06
dm-6 /dev/VolGroup00/LogVol01
问题是我以相同的顺序添加卷组,但它在创建过程中发生了变化。你能解释一下为什么会发生这种情况吗?我如何才能使所有服务器的分区表保持相同?
答案1
正如 Mark Wagner 所解释的那样,/dev-dm? 设备是在启动时由设备映射器动态分配的,因此应该绝不用作挂载点的来源,无论是手动挂载还是通过 /etc/fstab 挂载。相反,请使用 /dev/volume_group/logical_volume 或 /dev/mapper/volume_group-logical_volume,或使用该blkid
命令获得的 UUID(或lvdisplay
命令,也会显示它)。如果您不熟悉这些选项,可以查看这些命令以了解更多详细信息。
为了在所有服务器上保持相同的分区设置,最好的办法是创建 Kickstart 文件并用它来安装服务器。遗憾的是,system-config-kickstart GUI 应用程序不允许您配置逻辑卷组,因此您必须先保存它,然后手动编辑 .cfg 文件来设置磁盘。
要使用 Kickstart 文件安装,您需要在 grub 菜单中编辑内核参数并添加ks=URL_TO_YOUR_KICKSTART_FILE
。例如:ks=http://myserver.example.com/kickstart/mykickstartfile.cfg
这意味着您需要通过其中一种受支持的网络协议 (http、ftp、nfs、cifs 等...) 使 kickstart 文件可在线访问。
下面是我在一台小型虚拟机上使用的 LVM 分区示例:
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=200
part pv.01 --size=1 --grow
volgroup vg0 pv.01
logvol swap --vgname=vg0 --name=swap --fstype=swap --recommended
logvol /home --vgname=vg0 --name=home --size=512 --fstype ext4
logvol /tmp --vgname=vg0 --name=tmp --size=1024 --fstype ext4
logvol / --vgname=vg0 --name=root --size=1 --grow --fstype ext4
以下是来自 Red Hat 官方文档站点的有关 Kickstart 的一个很好的参考:
当然,您始终可以在服务器的交互式安装过程中手动自定义磁盘分区,并在所有服务器上执行相同的操作(因此请将其记录在某处)。希望对您有所帮助!
答案2
RedHat 对于分区以及在何处放置什么有自己的逻辑。
如果您想要完全控制,请使用
%pre
Kickstart 部分自行设置分区表,创建 VG 和 LV。
对于分区使用parted
,对于 VG/LV 操作使用命令lvs
(如lvs pvcreate ...
)。
您可以使用 kickstart 命令clearpart
(在 %pre 部分之前)来清除分区表。
首先使用 parted 创建标签,然后创建分区。
按照您想要的顺序创建 LV 后,您可以使用标准的 kickstart 语法在其上放置文件系统。