在某个项目中使用kickstart按照centos7.4的时候由于总是报磁盘问题,使用手工方式安装的时候,图形化分区界面和自己想到不一样,开始以为是7的anaconda不支持多个VG,后来才发现是自己的配置有问题。
这里说的RHEL7分区配置主要是针对安装操作系统时的分区配置问题。分两部分进行说明:
1 图形化手工分区
2 kickstart文件ks.cfg中分区的写法
之所以写这篇文章是因为自己踩到了一个大坑,记录一下。我这里的环境是多个磁盘配置多个lvm,如果只有一块盘,那无所谓,怎么配置都行,但多块盘的时候就需要注意一些情况了。
环境:
DELL R730服务器
2块480G SSD做RAID1,用于安装系统
4块1T SATA两两做RAID1,名为data1和data2,挂载在/data1和/data2上
应用的需求是:
划分/boot分区,/home分区和/分区,都使用xfs,划分rootvg,做成lvm
划分/dev/sdb和/dev/sdc,data1vg和data2vg,做成lvm
在ks文件中,我的写法是
# Partition clearing information
clearpart --all --initlabel
zerombr
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.12 --grow --fstype="lvmpv" --ondisk=sda --size=1024
volgroup rootvg --pesize=32768 pv.12
logvol /--fstype="xfs" --size=51200 --name=root --vgname=rootvg
logvol swap--fstype="swap" --size=1024 --name=swap --vgname=rootvg
logvol /home --fstype="xfs" --size=204800 --name=swap --vgname=rootvg
part pv.13 --grow --fstype="lvmpv" --ondisk=sdb --size=1
volgroup data1vg --pesize=32768 pv.13
logvol /data1--fstype="xfs" --size=8192 --name=data1 --vgname=data1vg
part pv.14 --grow --fstype="lvmpv" --ondisk=sdc --size=1
volgroup data2vg --pesize=32768 pv.14
logvol /data2--fstype="xfs" --size=8192 --name=data2 --vgname=data2vg
但在安装过程中,总是提示没有磁盘,因此在这步只能手动分区,过程如下:
以下是在测试环境中使用vm还原和解决问题的过程,和生产环境的一样
新建一台centos7的虚拟机,系统为centos7.4
添加三块disk,分别是15G,10G,10G,如下:
我的想法是:
先选中第一块盘,之后建立/boot分区,作为standard分区,xfs;之后建立rootvg,之后建立/home和/分区,做成lvm形式
之后选中第二块盘,/dev/sdb,做成data1vg,建立data1 lv
之后选中第三块盘,/dev/sdc,做成data2vg,建立data2 lv
但在实际操作的时候,只有rootvg可以正常建立,在之后建立data1vg和data1 lv的时候会自动把rootvg干掉;在之后建立data2vg和data2 lv的时候又会把data1vg和data1 lv干掉
我之前以为是anaconda的bug,或者是不支持设置多个vg,后来测试了几次,才找到正确的配置方法,如下:
选中三块盘,使用I will configure partitioning,之后Done
首先建立/boot分区,注意这里的提示,表示使用的是sda,sdb,sdc三块disk,需要Modify成只使用sda这一块磁盘,之后update setting
之后建立swap,创建rootvg,只选择sda这块磁盘
之后建立/分区
之后建立/data1,分配大小,建立data1vg,使用sdb
之后建立挂载点/data2,建立data2vg,使用sdc磁盘
之后update settings===注意:最好在每做完一个分区之后就update settings一次
可以在Desired Capacity这里修改分区大小
注意:
每做完一个分区,最好就update settings一下
如果显示某个vg可用空间不足,最好把该vg中的某个分区设置的稍微小一点,在新建另一个分区(使用另一个vg)的时候先设置成一个小的lv,然后在调大
我觉得anaconda还是有一些bug,在配置分区的有些时候命名没有使用某块disk,但实际上会占用该disk的空间,导致之后建立的分区空间不够用,这种情况的解决方法是:将所有分区都删除,然后重建
在ks.cfg中是如下形式
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
part /boot --fstype="xfs" --ondisk=sda --size=300
part pv.4441 --fstype="lvmpv" --ondisk=sda --size=9415
part pv.5068 --fstype="lvmpv" --ondisk=sdb --size=10239
part pv.5670 --fstype="lvmpv" --ondisk=sdc --size=10239
volgroup rootvg --pesize=4096 pv.4441
volgroup data1vg --pesize=4096 pv.5068
volgroup data2vg --pesize=4096 pv.5670
logvol /home--fstype="xfs" --size=200 --name=home --vgname=rootvg
logvol swap--fstype="swap" --size=1020 --name=swap --vgname=rootvg
logvol /--fstype="xfs" --size=8192 --name=root --vgname=rootvg
logvol /data1--fstype="xfs" --size=10236 --name=data1 --vgname=data1vg
logvol /data2--fstype="xfs" --size=10236 --name=data2 --vgname=data2vg
最后,为了更通用,适合更大的磁盘环境,修改为如下:红色部分为添加的内容
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
clearpart --all --initlabel
zerombr
part /boot --fstype="xfs" --ondisk=sda --size=300
part pv.13261 --fstype="lvmpv" --ondisk=sda --size=307200 --grow
part pv.16342 --fstype="lvmpv" --ondisk=sdb --size=1024000 --grow
part pv.18500 --fstype="lvmpv" --ondisk=sdc --size=1024000 --grow
volgroup rootvg --pesize=32768 pv.13261
volgroup data1vg --pesize=32768 pv.16342
volgroup data2vg --pesize=32768 pv.18500
logvol /home--fstype="xfs" --size=204800 --name=home --vgname=rootvg
logvol swap--fstype="swap" --size=8192 --name=swap --vgname=rootvg
logvol /--fstype="xfs" --size=51200 --name=root --vgname=rootvg
logvol /data2--fstype="xfs" --size=1 --grow --name=data2 --vgname=data2vg
logvol /data1--fstype="xfs" --size=1 --grow --name=data1 --vgname=data1vg