在 RHEL 7 中, parted 是默认的用来处理分区的程序,且它允许你:
展示当前的分区表
操纵(扩大或缩小分区的大小)现有的分区
利用空余的磁盘空间或额外的物理存储设备来创建分区
parted /dev/sdb
其中 /dev/sdb
是你将要创建新分区所在的设备;然后键入 print
来显示当前设备的分区表:
把分区格式化为 xfs 文件系统,然后再次打印出分区表,以此来确保更改已被应用。
# mkfs.xfs /dev/sdb1# parted /dev/sdb print
xfs 文件系统,它是 RHEL 7 中默认的文件系统
对于旧一点的文件系统,在 parted 中你可以使用 resize
命令来改变分区的大小。不幸的是,这只适用于 ext2, fat16, fat32, hfs, linux-swap, 和 reiserfs (若 libreiserfs 已被安装)。
改变分区大小的唯一方式是删除它然后再创建它(所以,确保你对你的数据做了完整的备份!)。毫无疑问,在 RHEL 7 中默认的分区方案是基于 LVM 的。
使用 parted 来移除一个分区,可以用:
# parted /dev/sdb print# parted /dev/sdb rm 1
逻辑卷管理(LVM)
一旦一个磁盘被分好了分区,再去更改分区的大小就是一件困难或冒险的事了。基于这个原因,假如我们计划在我们的系统上对分区的大小进行更改,我们应当考虑使用 LVM 的可能性,而不是使用传统的分区系统。这样多个物理设备可以组成一个逻辑组,以此来存放任意数目的逻辑卷,而逻辑卷的增大或减少不会带来任何麻烦。
使用 /dev/sdb 和 /dev/sdc 中 100% 的可用磁盘空间来创建分区 /dev/sdb1
和/dev/sdc1
:
# parted /dev/sdb print # parted /dev/sdc print
分别在 /dev/sdb1 和 /dev/sdc1 上共创建 2 个物理卷。
# pvcreate /dev/sdb1# pvcreate /dev/sdc1
在上一步中创建的物理卷之上创建一个卷组(VG):
# vgcreate tecmint_vg /dev/sd{b,c}1
可使用 vgdisplay tecmint_vg 来显示有关新建的卷组的信息。
在卷组 tecmint_vg 之上创建 3 个逻辑卷(LV):
# lvcreate -L 3G -n vol01_docs tecmint_vg [vol01_docs → 3 GB] # lvcreate -L 1G -n vol02_logs tecmint_vg [vol02_logs → 1 GB] # lvcreate -l 100%FREE -n vol03_homes tecmint_vg [vol03_homes → 6 GB]
可以使用 lvdisplay tecmintvg 来显示有关在 tecmintvg 之上新建的逻辑卷的信息。
格式化每个逻辑卷为 xfs 文件系统格式(假如你计划在以后将要缩小卷的大小,请别使用 xfs 文件系统格式!):
# mkfs.xfs /dev/tecmint_vg/vol01_docs # mkfs.xfs /dev/tecmint_vg/vol02_logs # mkfs.xfs /dev/tecmint_vg/vol03_homes
挂载它们:
# mount /dev/tecmint_vg/vol01_docs /mnt/docs # mount /dev/tecmint_vg/vol02_logs /mnt/logs # mount /dev/tecmint_vg/vol03_homes /mnt/homes
现在开始的操作是和先前相反的。
移除逻辑卷、卷组和物理卷:
# lvremove /dev/tecmint_vg/vol01_docs # lvremove /dev/tecmint_vg/vol02_logs # lvremove /dev/tecmint_vg/vol03_homes# vgremove /dev/tecmint_vg # pvremove /dev/sd{b,c}1
安装 SSM,我们将看到如何只用一步就完成上面所有的操作!
# yum update && yum install system-storage-manager
上面一样,使用相同的名称和大小:
# ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 /mnt/docs /dev/sd{b,c}1 # ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 /mnt/logs /dev/sd{b,c}1 # ssm create -n vol03_homes -p tecmint_vg --fstype ext4 /mnt/homes /dev/sd{b,c}1
SSM 可以让你:
初始化块设备来作为物理卷
创建一个卷组
创建逻辑卷
格式化逻辑卷,以及
只使用一个命令来挂载它们
以使用下面的命令来展示有关物理卷、卷组或逻辑卷的信息:
# ssm list dev # ssm list pool # ssm list vol
LVM 的一个显著的特点是可以在不停机的情况下更改(增大或缩小)逻辑卷的大小:
假定在 vol02logs 上我们用尽了空间,而 vol03homes 还留有足够的空间。我们将把 vol03homes 的大小调整为 4 GB,并使用剩余的空间来扩展 vol02logs:
# ssm resize -s 4G /dev/tecmint_vg/vol03_homes
再次运行 ssm list pool
,并记录 tecmint_vg 中的剩余空间的大小
ssm resize -s+1.99 /dev/tecmint_vg/vol02_logs
注: 在 -s
后的加号暗示特定值应该被加到当前值上。
使用 ssm 来移除逻辑卷和卷组也更加简单,只需使用:
# ssm remove tecmint_vg
管理加密的卷
# yum update && yum install cryptsetup
创建加密的卷
ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/docs /dev/sd{b,c}1
# ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/logs /dev/sd{b,c}1
# ssm create -n vol03_homes -p tecmint_vg --fstype ext4 --encrypt luks /mnt/homes /dev/sd{b,c}1
往 /etc/fstab 中添加条目来让这些逻辑卷在启动时可用,而不是使用设备识别编号(/dev/something)。
我们将使用每个逻辑卷的 UUID (使得当我们添加其他的逻辑卷或设备后,我们的设备仍然可以被唯一的标记),而我们可以使用 blkid 应用来找到它们的 UUID:
# blkid -o value UUID /dev/tecmint_vg/vol01_docs # blkid -o value UUID /dev/tecmint_vg/vol02_logs # blkid -o value UUID /dev/tecmint_vg/vol03_homes
用下面的内容来创建 /etc/crypttab 文件(请更改 UUID 来适用于你的设置):
docs UUID=ba77d113-f849-4ddf-8048-13860399fca8 nonelogs UUID=58f89c5a-f694-4443-83d6-2e83878e30e4 nonehomes UUID=92245af6-3f38-4e07-8dd8-787f4690d7ac none
在 /etc/fstab 中添加如下的条目。请注意到 devicename (/dev/mapper/devicename) 是出现在 /etc/crypttab 中第一列的映射标识:
# Logical volume vol01_docs:/dev/mapper/docs /mnt/docs ext4 defaults 0 2# Logical volume vol02_logs/dev/mapper/logs /mnt/logs ext4 defaults 0 2# Logical volume vol03_homes/dev/mapper/homes /mnt/homes ext4 defaults 0 2
现在重启(systemctl reboot
),则你将被要求为每个逻辑卷输入密码。随后,你可以通过检查相应的挂载点来确保挂载操作是否成功: