前提环境:
- 环境准备: 4块硬盘
可参考文档:
本地存储管理的任务与工具知识表格(必看/必会)
磁盘及分区
一、查看硬盘等块设备:
lsblk
查所有的硬盘分区表
:
fdisk -l |grep sd
查看硬盘的型号
:
smartctl -a /dev/sda
好了,现在我们这边磁盘已经准备好了。信息也看到了。
二、创建主分区格式
parted命令格式:parted [选项] 硬盘设备 动作(即parted的内部命令)
-s 不提示用户进行确认。
mklabel 类型 设置硬盘分区表类型。常见的类型有msdos(即MBR)、gpt等。
primary 主分区 创建主分区格式:mkpart primary 起始容量 截止容量
rm 数字 删除指定的分区。例:parted -s /dev/sdb rm 1
重点说明:msdos(也称MBR分区表
)分区表最多只能分4个主分区
,只能管理2TB以内的硬盘
。
GPT分区表
可以创建多达128个主分区
,可以管理2TB以上的硬盘
。
1、主分区表类型为msdos(磁盘小于2T)
parted -s /dev/sdb mklabel msdos
2、创建第1个主分区,容量是2GB
parted -s /dev/sdb mkpart primary 1 2G
3、创建第2个主分区,使用所有剩余空间
parted -s /dev/sdb mkpart primary '2G -1'
4、查看sdb硬盘的分区信息
fdisk -l |grep sdb
5、使系统重读分区表。
partprobe
三、格式化分区
命令格式:mkfs [选项] 分区设备
选项: -t 指定文件系统类型,常见的类型有ext、ext3、ext4、vfat。
1、格式化主分区一
mkfs -t ext4 /dev/sdb1
2、格式化主分区二
mkfs.ext4 /dev/sdb2
四、创建目录且挂载
1、创建挂载目录
mkdir -pv /b1 /b2
2、手动挂载sdb1分区到/b1目录中,并显示过程
mount -v /dev/sdb1 /b1
3、挂载sdb2分区到/b2目录中,并显示过程
mount -v /dev/sdb2 /b2
4、查看目录中的文件列表(会发现目录中有Lost+found这个目录)
ls /b1 /b2
5 、查看是否挂载成功
df
五、测试数据写入
1、在/b1目录中创建3个文件
touch /b1/{a,b,c}
2、复制/etc目录中以host开头的所有文件到/b2目录中
cp -v /etc/host* /b2/
如果我们reboot重启启动机器,挂载将失效,个人可以实验,这部跳过
,接下来操作reboot也不会失效
六、开机自动挂载磁盘
1、/etc/fstab是自动挂载的配置文件
vim /etc/fstab
/dev/sdb1 /b1 ext4 defaults 0 0
/dev/sdb2 /b2 ext4 defaults 0 0
2、测试自动挂载
当前状态(已经没有挂载目录/b1 /b2)
3、重新加载挂载
mount -av
4、查看是否挂载成功
七、删除主分区
1、卸载挂载目录(不能再卸载目录中卸载不然报错如下)
OK,接下来我们正式卸载目录
umount /b1 && umount /b2
2、删除sdb1、sdb2分区
parted -s /dev/sdb rm 1 && parted -s /dev/sdb rm 2
3、注释/etc/fstab自动挂载
4、再次检测/etc/fstab是否注释成功
八、编写脚本
获取脚本:
git clone https://gitee.com/cainiao555/partition_creation.git
逻辑卷管理
LVM的主要功能
:容量组合,动态调整容量大小,LVM是将多块硬盘从逻辑上组合成一个大容量的存储空间(即VG卷组),最终要划分成小的LV逻辑卷来使用这些空间。
LVM的管理流程
:先给硬盘分区(也可以不分区),再创建PV物理卷(volnume),再创建VG卷组,再创建LV逻辑卷,再mkfs格式化LV,再mount手动或fstab自动挂载LV,再写入数据。
物理卷(PV,Physical Volume) :用pvcreate在硬盘上创建PE的结果。查PV的结果用pvdisplay。
卷组(VG,Volume Group) :由一个或多个物理卷(PV)组成的整体。
逻辑卷(LV,Logical Volume) :从卷组(VG)中切割出的空间,用于格式化(即创建文件系统),大小由PE的个数决定。
物理扩展(PE,Physical Extent):是卷组中的最小容量单元,每个PE默认为4MB的基本块。
逻辑扩展(LE,Logical Extent):LV中的最小单元。默认的每个LE大小跟PE的大小一致。
一、将sdb~sdd格式转换成物理卷
1、格式转换为pv
pvcreate /dev/sd[b-d]
2、显示PV的详细状态
pvs
3、显示pv的详细信息
pvdisplay
二、将已创建物理卷(/dev/sdb、/dev/sdc)创建名称为date的卷组
1、创建date 的卷组
vgcreate date /dev/sdb /dev/sdc
2、显示vg 的状态
vgs
3、显示vg的详细信息
在这里插入代码片
三、在 date的卷组中创建名字为 home的逻辑卷
1、创建大小为10G 的home逻辑卷
lvcreate -L 10G -n home date
2、显示vg 的状态
lvs
3、显示vg的详细信息
lvdisplay
四、将/dev/sdd 扩容date卷组
1、扩容 date卷组
vgextend date /dev/sdd
2、查看 date卷组大小
vgs
五、将home 逻辑卷扩容20G
1、home逻辑卷扩容20G
方式一:
lvextend -L +20G -n /dev/date/home
方式二(之前home卷有10G的大小):
lvresize -L 30G -n /dev/date/home
2、查看 home逻辑卷大小
lvs
六、 缩容 home 逻辑卷大小到15G
1、 home逻辑卷缩容15G
方式一:
lvresize -L 15G -n /dev/date/home
方式二(当前home 逻辑卷大小30G):
lvextend -L -15G -n /dev/date/home
2、再次查看 home逻辑卷大小
3、查看date 卷组大小
vgs
七、 格式化指定的home 的逻辑卷
mkfs.ext4 /dev/date/home
八、创建 /test 目录并且逻辑卷挂载/test 目录
1、创建/test 目录
mkdir /test && mount /dev/date/home /test/ && df
2、复制/etc/host* 文件拷贝 /test目录下(测试已挂载磁盘缩容是否会造成数据丢失)
cp -rv /etc/host* /test/
九、 对已挂载的home 逻辑卷缩容
1、卸载/test目录中的设备
umount /test && df
2、检测 home 这个逻辑卷是否正常(即磁盘扫描)
e2fsck -f /dev/date/home
3、调整data逻辑卷在文件系统尺寸的容量为5G
resize2fs /dev/date/home 5G
显示lv data逻辑卷的状态
lvs
调整 data这个lv的容量为5G
lvresize -L 5G /dev/date/home
挂载 /dev/date/home 逻辑卷
mount /dev/date/home /test
十、 对已挂载的home 逻辑卷扩容
1、再次卸载home 逻辑卷
umount /test
2 、再次检测 home 这个逻辑卷是否正常(即磁盘扫描)
e2fsck -f /dev/date/home
3、调整data 逻辑卷的容量为20G
lvresize -L 20G /dev/date/home
4、挂载data 逻辑卷
mount /dev/date/home /test
5、调整data逻辑卷在文件系统中的容量为 20G
resize2fs -p /dev/date/home