linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间;普通的磁盘分区管理方式在逻辑分区划分好以后就没法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件由于受上层文件系统的限制,也不能跨越多个分区来存放,因此也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法一般是使用符号连接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的状况下能够方便地调整各个分区大小。(参考百度百科)linux
<font color=red>逻辑卷的缺点:</font>服务器
- 逻辑卷主要的做用就是动态管理分区的大小,可是如今市场上的磁盘已经很廉价了,咱们彻底能够分配合适的磁盘空间。
- 在磁盘直接分区是属于直接在磁盘上创建文件系统,而逻辑卷是创建磁盘和文件系统之间的标识,因此当线上服务器的磁盘坏了,数据恢复有很大的风险
- 逻辑卷的数据读写的速度也是有些慢的
##一、LVM经常使用的术语:app
##二、经常使用的LVM部署命令dom
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
创建 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
##xfs文件系统管理经常使用命令tcp
命令 | 做用 |
---|---|
xfs_admin | 调整 xfs 文件系统的各类参数 |
xfs_copy | 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式) |
xfs_db | 调试或检测 xfs 文件系统(查看文件系统碎片等) |
xfs_check | 检测 xfs 文件系统的完整性 |
xfs_bmap | 查看一个文件的块映射 |
xfs_repair | 尝试修复受损的 xfs 文件系统 |
xfs_fsr | 碎片整理 |
xfs_quota | 管理 xfs 文件系统的磁盘配额 |
xfs_metadump | 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中 |
xfs_mdrestore | 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统 |
xfs_growfs | 调整一个 xfs 文件系统大小(只能扩展) |
xfs_freeze | 暂停(-f)和恢复(-u)xfs 文件系统 |
xfs_logprint | 打印xfs文件系统的日志 |
xfs_mkfile | 建立xfs文件系统 |
xfs_info | 查询文件系统详细信息 |
xfs_ncheck | generate pathnames from i-numbers for XFS |
xfs_rtcp | XFS实时拷贝命令 |
xfs_io | 调试xfs I/O路径 |
##三、LVM逻辑卷部署工具
物理卷 --> 卷组 --> 逻辑卷 ①. 建立物理卷 pvcreate /dev/sd{b,c} ②. 建立卷组 vgcreate vg_du /dev/sd{b,c} ③. 建立逻辑卷 lvcreate -n lv_du -L 500M vg_ken ④. 格式化 mkfs.xfs /dev/vg_du/lv_du ⑥. 挂载使用 mount /dev/vg_du/lv_du /testspa
注意:卸载命令umount 后面跟挂载点或者磁盘均可以调试
LVM扩容 lvextend -L +300M /dev/vg_du/lv_du lvextend -L 800M /dev/vg_du/lv_durest
xfs_growfs /dev/vg_du/lv_du日志
##演示:
#第一步:添加磁盘并查看 ╭─root@localhost.localdomain ~ ╰─➤ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc #第二步:建立物理卷 ╭─root@localhost.localdomain ~ ╰─➤ pvcreate /dev/sd{b,c} 5 ↵ Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created. #第三步:建立卷组 ╭─root@localhost.localdomain ~ ╰─➤ vgcreate vg_du /dev/sd{b,c} Volume group "vg_du" successfully created #第四步:建立逻辑卷并格式化逻辑卷 ╭─root@localhost.localdomain ~ ╰─➤ man lvcreate #开手册查看用法,经常使用option:-l -L -n ╭─root@localhost.localdomain ~ ╰─➤ lvcreate -L 1G -n lv_du1 vg_du #-L:size 大小 -n:name 名字 Logical volume "lv_du1" created. ╭─root@localhost.localdomain ~ ╰─➤ mkfs.xfs /dev/vg_du/lv_du1 meta-data=/dev/vg_du/lv_du1 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 ╭─root@localhost.localdomain ~ ╰─➤ lvcreate -l 250 -n lv_du2 vg_du #-l :数量 Logical volume "lv_du2" created. ╭─root@localhost.localdomain ~ ╰─➤ mkfs.xfs /dev/vg_du/lv_du2 meta-data=/dev/vg_du/lv_du2 isize=512 agcount=4, agsize=64000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=256000, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 #第五步:挂载 ╭─root@localhost.localdomain ~ ╰─➤ mkdir /du1 ╭─root@localhost.localdomain ~ ╰─➤ mkdir /du2 ╭─root@localhost.localdomain ~ ╰─➤ mount /dev/vg_du/lv_du1 /du1 ╭─root@localhost.localdomain ~ ╰─➤ mount /dev/vg_du/lv_du2 /du2 ╭─root@localhost.localdomain ~ ╰─➤ df #查询挂载成功 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 17811456 4837880 12973576 28% / devtmpfs 484108 0 484108 0% /dev tmpfs 499968 144 499824 1% /dev/shm tmpfs 499968 7228 492740 2% /run tmpfs 499968 0 499968 0% /sys/fs/cgroup /dev/sda1 1038336 176600 861736 18% /boot tmpfs 99996 16 99980 1% /run/user/0 /dev/sr0 4276440 4276440 0 100% /run/media/root/CentOS 7 x86_64 /dev/mapper/vg_du-lv_du1 1038336 32944 1005392 4% /du1 /dev/mapper/vg_du-lv_du2 1020580 32944 987636 4% /du2 #第六步:开机自启 ╭─root@localhost.localdomain ~ ╰─➤ echo "/dev/mapper/vg_du-lv_du1 /du1 xfs defaults 0 0" >> /etc/fstab ╭─root@localhost.localdomain ~ ╰─➤ echo “mount /dev/vg_du/lv_du2 /du2” >> /etc/rc.local ╭─root@localhost.localdomain ~ ╰─➤ chmod +x /etc/rc.local #给个执行权限 # /etc/rc.local 是使用者自订开机启动程序的文件,把须要开机自动运行的程序写在这个脚本里