注意:创建vdo卷要准备一个未分区的新磁盘
[root@lc ~]# lsblk | grep nvme0n2
nvme0n2 259:3 0 20G 0 disk
[root@lc ~]#
1.安装vdo软件和模块
[root@lc ~]# yum -y install vdo kmod-kvdo
2.创建vdo卷
[root@lc ~]# vdo create --name=lcvdo --device=/dev/nvme0n2 --vdoLogicalSize=20T
Creating VDO lcvdo
The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
It can grow to address at most 16 TB of physical storage in 8192 slabs.
If a larger maximum size might be needed, use bigger slabs.
Starting VDO lcvdo
Starting compression on VDO lcvdo
VDO instance 1 volume is ready at /dev/mapper/lcvdo
[root@lc ~]#
3.查看vdo卷
[root@lc ~]# fdisk -l /dev/mapper/lcvdo
Disk /dev/mapper/lcvdo:20 TiB,21990232555520 字节,5368709120 个扇区
单元:扇区 / 1 * 4096 = 4096 字节
扇区大小(逻辑/物理):4096 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
[root@lc ~]#
关闭vdo卷
[root@lc ~]# vdo stop -n lcvdo
Stopping VDO lcvdo
[root@lc ~]#
开启vdo卷
[root@lc ~]# vdo start -n lcvdo
Starting VDO lcvdo
Starting compression on VDO lcvdo
VDO instance 2 volume is ready at /dev/mapper/lcvdo
[root@lc ~]#
一定要加 ==-K(大写)==选项
[root@lc ~]# mkfs.xfs -K /dev/mapper/lcvdo
meta-data=/dev/mapper/lcvdo isize=512 agcount=20, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5368709100, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@lc ~]#
临时挂载
[root@lc ~]# udevadm settle
[root@lc ~]# mkdir /lcvdohome
[root@lc ~]# mount /dev/mapper/lcvdo /lcvdohome/
[root@lc ~]# df -Th | grep vdo
/dev/mapper/lcvdo xfs 20T 143G 20T 1% /lcvdohome
[root@lc ~]#
永久挂载
[root@lc ~]# mkdir /lcvdohome
[root@lc ~]# blkid /dev/mapper/lcvdo
/dev/mapper/lcvdo: UUID="c27fd47c-0554-470b-9446-f67158f2cd68" TYPE="xfs"
[root@lc ~]# vim /etc/fstab
[root@lc ~]# cat /etc/fstab
(省略)
UUID="c27fd47c-0554-470b-9446-f67158f2cd68" /lcvdohome xfs defaults,x-systemd.requires=vdo.service 0 0 //手动添加本条
[root@lc ~]#
[root@lc ~]# mount -a
[root@lc ~]# df -Th | grep vdo
/dev/mapper/lcvdo xfs 20T 143G 20T 1% /lcvdohome
[root@lc ~]#
[root@lc ~]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/lcvdo 20.0G 4.0G 16.0G 20% 99%
[root@lc ~]# cp /mnt/images/install.img /vdo111/
[root@lc ~]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/lcvdo 20.0G 4.5G 15.5G 22% 79%
[root@lc ~]#
扩容之前要保证这个vdo卷是没有人正在使用的,比如cd到了vdo卷的挂载路径,或者vim挂载路径里面的某个文件,只要产生的进程是关于vdo的,就不可以扩容。要先kil这些进程
通过lsof查看
lsof:查看文件的进程信息
[root@lc ~]# lsof /lcvdohome/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 3517 root cwd DIR 253,2 6 128 /lcvdohome //有一个进程
[root@lc ~]# kill -9 3517 //通过进程号结束该进程
[root@lc ~]# lsof /lcvdohome/
[root@lc ~]# //现在没有进程占用vdo的挂载点了
取消挂载
[root@lc ~]# umount /dev/mapper/lcvdo
[root@lc ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 10M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 26G 4.3G 22G 17% /
/dev/sr0 iso9660 7.9G 7.9G 0 100% /mnt/cdrom
/dev/nvme0n1p1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42
tmpfs tmpfs 376M 3.5M 372M 1% /run/user/0
[root@lc ~]#
扩充vdo卷大小
命令最后面的大小是你扩充磁盘后的大小。比如,原来是20T,你想增加10T,那么后面的大小应该写30T
[root@lc ~]# vdo growLogical --name=lcvdo --vdoLogicalSize=30T
[root@lc ~]# lsblk | grep vdo
└─lcvdo 253:2 0 30T 0 vdo //从原来的20T扩充为30T了
[root@lc ~]#
重新挂载回去
[root@lc ~]# mount -a
[root@lc ~]# df -Th | grep vdo
/dev/mapper/lcvdo xfs 20T 143G 20T 1% /lcvdohome
[root@lc ~]#
//发现挂载后只有20T,因为文件系统容量还没有同步到内核
同步文件系统容量到内核
xfs格式的用xfs_growfs
ext格式的用resize2
[root@lc ~]# xfs_growfs /dev/mapper/lcvdo
meta-data=/dev/mapper/lcvdo isize=512 agcount=20, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5368709100, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 5368709100 to 8053063650
[root@lc ~]#
[root@lc ~]# df -Th | grep vdo
/dev/mapper/lcvdo xfs 30T 215G 30T 1% /lcvdohome
[root@lc ~]#
//已经同步为30T了
先卸载才可以删除,如果vdo卷还在使用就无法删除
卸载之前
[root@lc ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 7.9G 0 rom /mnt/cdrom
nvme0n1 259:0 0 30G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 29G 0 part
├─rhel-root 253:0 0 26G 0 lvm /
└─rhel-swap 253:1 0 3G 0 lvm [SWAP]
nvme0n2 259:3 0 10G 0 disk
└─lcvdo 253:2 0 30T 0 vdo /lcvdohome //要卸载的vdo卷
[root@lc ~]#
取消挂载
//卸载vdo卷
[root@lc ~]# umount /dev/mapper/lcvdo
//查看挂载信息,已经看不见vdo卷了
[root@lc ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 10M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 26G 4.3G 22G 17% /
/dev/sr0 iso9660 7.9G 7.9G 0 100% /mnt/cdrom
/dev/nvme0n1p1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42
tmpfs tmpfs 376M 3.5M 372M 1% /run/user/0
[root@lc ~]#
删除vdo卷
[root@lc ~]# vdo remove --name lcvdo
Removing VDO lcvdo
Stopping VDO lcvdo
[root@lc ~]#
删除后查看磁盘分区信息
[root@lc ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 7.9G 0 rom /mnt/cdrom
nvme0n1 259:0 0 30G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 29G 0 part
├─rhel-root 253:0 0 26G 0 lvm /
└─rhel-swap 253:1 0 3G 0 lvm [SWAP]
nvme0n2 259:3 0 10G 0 disk
[root@lc ~]#
//vdo卷已经删除了
//逻辑卷管理,是⼀种将⼀个或多个硬盘的分区 在逻辑上集合,相当于⼀个⼤硬盘来使⽤,当硬盘的空间不够使⽤的时候,
可以继续将其它 的硬盘的 分区加⼊其中,这样可以事项⼀种磁盘空间的动态管理,相对于普通的磁盘分区有 很⼤的灵活
性,使⽤普通的磁盘分区,当⼀个磁盘的分区空间不够使⽤的时候,可 能就会带 来很⼤的麻烦。使⽤LVM在⼀定程度上就
可以解决普通磁盘分区带来的问题//
使用场景:随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了,使用lvm卷可以灵活的进行扩容
优缺点:
优点:灵活性强,大小可以动态调整
缺点:数据不是直接存放在硬盘上,而是在硬盘的上面又虚拟出来一层逻辑卷存放数据,故而增加了磁盘数据恢复的难度
物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷
卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用
从创建到使用的过程:
1.添加物理磁盘,创建物理卷
2.创建卷组,将物理卷加入卷组
3.在卷组中划分逻辑卷
4.格式化逻辑卷
5.挂载使用
创建物理卷、卷组和逻辑卷的命令:
pvcreate 物理磁盘路径
pvcreate /dev/nvme0n2 //后面接添加好的物理磁盘的设备名
vgcreate 卷组名 物理卷名
vgcreate lcvg1 /dev/nvme0n2 //卷组名自定义,物理卷名是已经存在的物理卷
lvcreate -L 指定大小和单位 -n 逻辑卷名 卷组名
lvcreate -L 2G -n lclv1 lcvg1 //逻辑卷名自定义,卷组名是已经存在的卷组
简单的查看命令
pvs //查看你物理卷的概要信息
vgs //查看卷组的概要信息
lvs //查看逻辑卷的概要信息
[root@lc ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <29.00g 0
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- <26.00g
swap rhel -wi-ao---- 3.00g
1.先准备一块新的物理磁盘
[root@lc ~]# lsblk | grep nvme0n2
nvme0n2 259:3 0 10G 0 disk
[root@lc ~]#
2.把物理磁盘创建为物理卷
[root@lc ~]# pvcreate /dev/nvme0n2
Physical volume "/dev/nvme0n2" successfully created.
[root@lc ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <29.00g 0
/dev/nvme0n2 lvm2 --- 10.00g 10.00g //物理卷创建成功
[root@lc ~]#
3.在刚刚创建好的物理卷上创建卷组
[root@lc ~]# vgcreate lcvg1 /dev/nvme0n2
Volume group "lcvg1" successfully created
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lcvg1 1 0 0 wz--n- <10.00g <10.00g //卷组lcvg1已经创建好了
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]#
4.在卷组lcvg1上创建一个逻辑卷
[root@lc ~]# lvcreate -L 2G -n lclv1 lcvg1
Logical volume "lclv1" created.
[root@lc ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lclv1 lcvg1 -wi-a----- 2.00g //逻辑卷lclv1创建成功
root rhel -wi-ao---- <26.00g
swap rhel -wi-ao---- 3.00g
[root@lc ~]#
5.格式化创建的逻辑卷
[root@lc ~]# mkfs.ext4 /dev/lcvg1/lclv1
mke2fs 1.45.4 (23-Sep-2019)
创建含有 524288 个块(每块 4k)和 131072 个inode的文件系统
文件系统UUID:b754106b-6233-4b10-9ad5-31238b230b72
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912
正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成
[root@lc ~]#
6.创建一个目录,给逻辑卷进行挂载使用
//创建挂载目录
[root@lc ~]# mkdir /root/lvhome
//查找逻辑卷的UUID
[root@lc ~]# blkid /dev/lcvg1/lclv1
/dev/lcvg1/lclv1: UUID="b754106b-6233-4b10-9ad5-31238b230b72" TYPE="ext4"
[root@lc ~]#
//写入配置信息,永久挂载
[root@lc ~]# vim /etc/fstab
[root@lc ~]# tail -1 /etc/fstab
UUID="b754106b-6233-4b10-9ad5-31238b230b72" /root/lvhome ext4 defaults 0 0
[root@lc ~]#
//挂载,然后查看挂载使用信息
[root@lc ~]# mount -a
[root@lc ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 10M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 26G 4.3G 22G 17% /
/dev/sr0 iso9660 7.9G 7.9G 0 100% /mnt/cdrom
/dev/nvme0n1p1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42
tmpfs tmpfs 376M 3.5M 372M 1% /run/user/0
/dev/mapper/lcvg1-lclv1 ext4 2.0G 6.0M 1.8G 1% /root/lvhome 挂载成功
[root@lc ~]#
将新的磁盘加入到某个卷组
//当需要在某个卷组里面划分新的卷组时,卷组的空间已经不够了,这时就需要给卷组扩容。
//卷组是建立在物理卷上的,所以要扩容卷组就要先准备新的物理卷,准备新的物理卷,就要添加新的物理磁盘
命令:
vgextend 卷组名 物理卷名
vgextend lcvg1 /dev/nvme0n3 //卷组名为需要扩充的卷组,物理卷名是空间的来源
示例:
1.准备一个新的物理磁盘,并将其创建为物理卷
[root@lc ~]# lsblk | grep nvme0n3
nvme0n3 259:4 0 20G 0 disk //20G的物理磁盘
[root@lc ~]#
[root@lc ~]# pvcreate /dev/nvme0n3
Physical volume "/dev/nvme0n3" successfully created.
[root@lc ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <29.00g 0
/dev/nvme0n2 lcvg1 lvm2 a-- <10.00g <8.00g
/dev/nvme0n3 lvm2 --- 20.00g 20.00g //创建成功
[root@lc ~]#
2.使用vgextend扩展卷组
//没扩充之前lcvg1的大小
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lcvg1 1 1 0 wz--n- <10.00g <8.00g //总大小10G,可用8G
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]#
//扩充
[root@lc ~]# vgextend lcvg1 /dev/nvme0n3
Volume group "lcvg1" successfully extended
[root@lc ~]#
//扩充后lcvg1的大小
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lcvg1 2 1 0 wz--n- 29.99g 27.99g //扩大了20G
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]#
将指定磁盘从卷组中删除
命令:
vgreduce 卷组名 物理卷名
vgreduce lcvg1 /dev/nvme0n3
示例:
//查看现在卷组lcvg1的大小
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lcvg1 2 1 0 wz--n- 29.99g 27.99g //现在是30G
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]#
//减缩卷组,移除一个物理卷
[root@lc ~]# vgreduce lcvg1 /dev/nvme0n3
Removed "/dev/nvme0n3" from volume group "lcvg1"
[root@lc ~]#
//查看减缩后的卷组大小
[root@lc ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lcvg1 1 1 0 wz--n- <10.00g <8.00g //缩小了
rhel 1 2 0 wz--n- <29.00g 0
[root@lc ~]#
//当磁盘损坏或者故障需要维修或更换时,需要进行数据迁移
//同一卷组的磁盘才可以进行在线迁移
命令
pvmove
pvmove /dev/nvme0n2 /dev/nvme0n3 //前面是要要出数据的磁盘,后面是存数据的磁盘
示例:
1.查看当前物理卷信息
[root@lc ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <29.00g 0
/dev/nvme0n2 lcvg1 lvm2 a-- <10.00g <7.00g //已经使用3G
/dev/nvme0n3 lcvg1 lvm2 a-- <20.00g <20.00g // 未使用
[root@lc ~]#
物理卷n2里面有3G的数据,而n3里面什么都没有,尝试把n2里面的数据迁移到n3里
2.数据迁移
[root@lc ~]# pvmove /dev/nvme0n2 /dev/nvme0n3
/dev/nvme0n2: Moved: 2.21%
/dev/nvme0n2: Moved: 33.33%
/dev/nvme0n2: Moved: 100.00%
[root@lc ~]#
3.查看迁移后的物理卷信息
[root@lc ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <29.00g 0
/dev/nvme0n2 lcvg1 lvm2 a-- <10.00g <10.00g //未使用
/dev/nvme0n3 lcvg1 lvm2 a-- <20.00g <17.00g //使用3G
[root@lc ~]#
//逻辑卷不够用时,从该逻辑卷的卷组里面,分出一部分空间给这个逻辑卷(前提是卷组的空间有多余的)
命令:
lvextend
lvextend -L +2G /dev/lcvg1/lclv1 //+2G表示在原来的基础上,再加2G
lvextend -L 2G /dev/lcvg1/lclv1 //没有+号表示,扩展到多少G
lvextend -L 50%FREE /dev/lcvg1/lclv1 //按百分比分配,分配磁盘池中50%给逻辑卷
示例:
//查看逻辑卷lclv1的大小
[root@lc ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lclv1 lcvg1 -wi-ao---- 2.00g //现在是2G
lclv2 lcvg1 -wi-a----- 2.00g
root rhel -wi-ao---- <26.00g
swap rhel -wi-ao---- 3.00g
[root@lc ~]#
//进行扩充
[root@lc ~]# lvextend -L +2G /dev/lcvg1/lclv1
Size of logical volume lcvg1/lclv1 changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
Logical volume lcvg1/lclv1 successfully resized.
[root@lc ~]#
//查看扩充后的
[root@lc ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lclv1 lcvg1 -wi-ao---- 4.00g //加了2G,变成了4G
lclv2 lcvg1 -wi-a----- 2.00g
root rhel -wi-ao---- <26.00g
swap rhel -wi-ao---- 3.00g
[root@lc ~]#
//扩充文件系统
[root@lc ~]# resize2fs /dev/lcvg1/lclv1
resize2fs 1.45.4 (23-Sep-2019)
/dev/lcvg1/lclv1 上的文件系统已被挂载于 /root/lvhome;需要进行在线调整大小
old_desc_blocks = 1, new_desc_blocks = 1
/dev/lcvg1/lclv1 上的文件系统现在为 1048576 个块(每块 4k)。
[root@lc ~]#
//查看挂载信息
[root@lc ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 26G 4.3G 22G 17% /
/dev/sr0 iso9660 7.9G 7.9G 0 100% /mnt/cdrom
/dev/mapper/lcvg1-lclv1 ext4 3.9G 8.0M 3.7G 1% /root/lvhome
/dev/nvme0n1p1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0
[root@lc ~]#
//已经成功扩充为4G,并可以正常使用
只有ext4文件系统的逻辑卷才可以减缩
缩减逻辑卷注意事项:
//1.不能在线缩减,得先卸载;
//2.确保缩减后的空间大小依然能存储原有的所有数据;
//3.在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。使用命令e2fsck -f
命令:
lvreduce
lvreduce -L 1G /dev/lcvg1/lclv1 //1G代表是减缩到1G,最终的大小就是1G
示例:
1.先取消挂载要减缩的逻辑卷
[root@lc ~]# umount /dev/mapper/lcvg1-lclv1
2.检查文件系统
[root@lc ~]# e2fsck -f /dev/lcvg1/lclv1
e2fsck 1.45.4 (23-Sep-2019)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/lcvg1/lclv1:11/262144 文件(0.0% 为非连续的), 34894/1048576 块
[root@lc ~]# resize2fs
3.调整文件系统的大小,测试减缩(不是真正减缩,只是测试一下可以减缩到多大)
[root@lc ~]# resize2fs /dev/lcvg1/lclv1 1G
resize2fs 1.45.4 (23-Sep-2019)
将 /dev/lcvg1/lclv1 上的文件系统调整为 262144 个块(每块 4k)。
/dev/lcvg1/lclv1 上的文件系统现在为 262144 个块(每块 4k)。
[root@lc ~]#
4.减缩逻辑卷,减缩后的大小为1G
[root@lc ~]# lvreduce -L 1G /dev/lcvg1/lclv1
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lcvg1/lclv1? [y/n]: y
Size of logical volume lcvg1/lclv1 changed from 4.00 GiB (1024 extents) to 1.00 GiB (256 extents).
Logical volume lcvg1/lclv1 successfully resized.
[root@lc ~]#
5.查看减缩后的逻辑卷
[root@lc ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lclv1 lcvg1 -wi-a----- 1.00g //已经减缩到1G了
lclv2 lcvg1 -wi-a----- 2.00g
root rhel -wi-ao---- <26.00g
swap rhel -wi-ao---- 3.00g
[root@lc ~]#
6.再次检测文件系统
[root@lc ~]# e2fsck -f /dev/lcvg1/lclv1
e2fsck 1.45.4 (23-Sep-2019)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/lcvg1/lclv1:11/65536 文件(0.0% 为非连续的), 21787/262144 块
[root@lc ~]#
7.测试挂载
[root@lc ~]# mount -a
[root@lc ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 26G 4.3G 22G 17% /
/dev/sr0 iso9660 7.9G 7.9G 0 100% /mnt/cdrom
/dev/nvme0n1p1 xfs 1014M 229M 786M 23% /boot
tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0
/dev/mapper/lcvg1-lclv1 ext4 944M 5.1M 877M 1% /root/lvhome
[root@lc ~]#
//逻辑卷lclv1已经成功减缩到1G,且可以正常使用
1.如何查看/etc/目录大小
[root@LC ~]# du -sh /etc/
22M /etc/
[root@LC ~]#
2.如何查看磁盘使用分区情况
[root@LC ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
│ /a1
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part
├─sdb2 8:18 0 4G 0 part
├─sdb3 8:19 0 4G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 2G 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 8.9G 0 rom /mnt
[root@LC ~]#
3.如何查看inode使用情况
[root@LC ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 242971 446 242525 1% /dev
tmpfs 248208 1 248207 1% /dev/shm
tmpfs 819200 713 818487 1% /run
/dev/mapper/rhel-root 8910848 40321 8870527 1% /
/dev/sda1 524288 372 523916 1% /a1
/dev/sr0 0 0 0 - /mnt
tmpfs 49641 15 49626 1% /run/user/0
[root@LC ~]#
4.如何查看磁盘block使用情况
[root@LC ~]# df -v
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 992832 0 992832 0% /dev/shm
tmpfs 397136 5760 391376 2% /run
/dev/mapper/rhel-root 17811456 2609248 15202208 15% /
/dev/sda1 1038336 292944 745392 29% /a1
/dev/sr0 9370716 9370716 0 100% /mnt
tmpfs 198564 0 198564 0% /run/user/0
[root@LC ~]#
5.如何查看分区使用格式
[root@LC ~]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
devtmpfs devtmpfs 4096 0 4096 0% /dev
tmpfs tmpfs 992832 0 992832 0% /dev/shm
tmpfs tmpfs 397136 5760 391376 2% /run
/dev/mapper/rhel-root xfs 17811456 2609248 15202208 15% /
/dev/sda1 xfs 1038336 292944 745392 29% /a1
/dev/sr0 iso9660 9370716 9370716 0 100% /mnt
tmpfs tmpfs 198564 0 198564 0% /run/user/0
[root@LC ~]#
6.如何查看一个设备的UUID
[root@LC ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a92f76f4-3360-4fd6-ad9e-d87dcd476a59" TYPE="swap" PARTUUID="74c0558e-01"
[root@LC ~]#
7.请解释/etc/fstab中每段含义
[root@LC ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Jun 26 09:53:32 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=b1821db2-a464-452f-b583-aef06d6d8b38 /boot xfs defaults 0 0
/dev/mapper/rhel-swap none swap defaults 0 0
/dev/sr0 /mnt iso9660 defaults 0 0
UUID="b1821db2-a464-452f-b583-aef06d6d8b38" /a1 xfs defaults 0 0
UUID="a92f76f4-3360-4fd6-ad9e-d87dcd476a59" swap sawp defaults 0 0
[root@LC ~]#
//分区标识(UUID或设备名) 挂载点 文件类型 挂载参数 不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
//挂载参数, 可写fstab配置文件, 也可以mount时使用-o参数指定
参数 参数意义 系统默认值
async 系统每隔一段时间把内存数据写入磁盘中,
sync 时时同步内存和磁盘中数据;
suid,nosuid 允许/不允许分区有suid属性 suid
rw,ro 可以指定文件系统是只读(ro)或可写(rw) rw
exec,noexec 允许/不允许可执行文件执行,不要挂载根分区 exec
user,nouser 允许/不允许root外的其他用户挂载分区 nouser
auto,noauto 开机自动挂载/不自动挂载 auto
default 默认文件系统挂载设置 rw, suid, dev, exec, auto, nouser, async
8.一个ext4的文件分区,当使用touch test.file命令创建一个新文件是报错,报错的信息提示磁盘已满,但是采用df –h 命令查看磁盘大小时,只是用了60%的磁盘空间,这个情况的原因是.
磁盘空间还有,但是无法创建文件。原因是inode被用完了