目录
一.逻辑卷的使用及扩容
1、概念优点及注意事项
2.使用命令及基本格式
二.LVM实验操作
建立磁盘
建立分区
设置物理卷
设置卷组
设置逻辑卷
挂载
总结
扩展
三.扩容
扩容——vg
扩逻辑卷
同步文件系统
四.缩容
解挂载
编辑检测文件系统完整性
缩减文件系统
编辑缩减逻辑卷上下一致
再挂载回去
五.删除
解挂载
remove命令删除
六.磁盘配额
1.实现磁盘配额的条件
2.Linux磁盘限额的特点
七.根目录扩容
一.逻辑卷的使用及扩容
1、概念优点及注意事项
概念:Linux 下对硬盘分区的一种管理机制,适合于管理大存储设备,并允许用户动态调整文件系统的大小。
优点:相比较分区而言逻辑卷可以动态调整文件系统的大小。
- PV(物理卷):设定那些硬盘和分区(做逻辑卷时分区必须是8e类型)可以做逻辑卷
- VG(卷组):将物理卷告诉的硬盘,卷组将硬盘的大小打碎成PE,一个PE大概4M
- LV(逻辑卷):从VG中取需要的PE来决定逻辑卷的大小。
注意事项:①/boot分区用于存放引导文件所以不能建立逻辑卷
②创建逻辑卷=完成磁盘使用的分区步骤,依然需要将逻辑卷格式化挂载才能使用
2.使用命令及基本格式
①pvcreate:创建物理卷
基本格式:pvcreate 设备名1 设备名2... (如果是分区格式必须是8e,磁盘无要求)
②vgcreate:创建卷组
基本格式:vgcreate 卷组名 物理卷名1 物理卷2...
③lvcreate:创建逻辑卷
基本格式:lvcreate -L 容量大小10G等.. -n 逻辑卷名 卷组名,从卷组取PE
④vgextend:扩展卷组
基本格式:vgextend /要扩容的卷组 /dev/新建的物理卷
⑤lvextend:扩展逻辑卷
基本格式:lvextend -L[扩展大小选项] +20G(扩展具体大小)或者写扩展后的总容量,不写代表把此逻辑卷组变为20G, 逻辑卷组名 -r(表示添加完毕直接刷新显示) 注意+号。
⑥pvscan:查看物理卷信息。 pvdisplay:查看详细的物理卷信息
vgscan: 查看卷组信息。 vgdisplay:查看卷组的具体信息
lvscan:查看逻辑卷信息 lvdisplay:查看逻辑卷具体信息
二.LVM实验操作
建立磁盘
建立分区
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#fdisk /dev/sdb
fdisk: 打不开 /dev/sdb: 没有那个文件或目录
[root@localhost ~]#scan
[root@localhost ~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x54299b1c 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB命令(输入 m 获取帮助):p磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x54299b1c设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
设置物理卷
[root@localhost ~]#pvcreate /dev/sdb1 /dev/sdc#设置物理卷Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc" successfully created.
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
设置卷组
[root@localhost ~]#vgcreate zk /dev/sdb1 /dev/sdc#设置卷组Volume group "zk" successfully created
设置逻辑卷
[root@localhost ~]#lvcreate -n mysql -L 10G ghdLogical volume "mysql" created.#建立逻辑卷-n 指定逻辑卷名字mysql -L指定大小为10G(PE是ghd卷组中来的)[root@localhost ~]#ll /dev/mapper/zk-mysql
lrwxrwxrwx 1 root root 7 12月 28 15:02 /dev/mapper/ghd-mysql -> ../dm-2
[root@localhost ~]#ll dev/ghd/mysql
lrwxrwxrwx 1 root root 7 12月 28 15:02 /dev/ghd-mysql -> ../dm-2#逻辑卷有两个名字
安装文件系统
[root@localhost ~]#mkfs.xfs /dev/zk/mysql
meta-data=/dev/ghd/mysql isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, 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 ~]#mount /dev/zk/mysql /mnt/
[root@localhost ~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 52403200 4763800 47639400 10% /
devtmpfs 917604 0 917604 0% /dev
tmpfs 933524 0 933524 0% /dev/shm
tmpfs 933524 9308 924216 1% /run
tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 5232640 182368 5050272 4% /boot
tmpfs 186708 4 186704 1% /run/user/42
tmpfs 186708 28 186680 1% /run/user/0
/dev/sr0 4414592 4414592 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/ghd-mysql 10475520 32944 10442576 1% /mnt
[root@localhost ~]#scan
[root@localhost ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.6G 46G 10% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 5.0G 179M 4.9G 4% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/ghd-mysql 10G 33M 10G 1% /mnt
总结
- fdisk
- 首先建立分区
- pvcreate /dev/sdb1 /dev/sdc
- 建立物理卷
- vgcreate vg1 /dev/sdb1 /dev/sdc
- 建立卷组 取名并将/dev/sdb1 /dev/sdc 加入卷组
- lvcreate -n mysql -L 10G vg1
- 建立逻辑卷 -n指定逻辑卷名字 -L 指定大小 PE是vg1卷组中来的
扩展
scan display都可以查看当前物理卷或者卷组的详细信息
[root@localhost ~]#pvscanPV /dev/sdb1 VG ghd lvm2 [<10.00 GiB / <10.00 GiB free]PV /dev/sdc VG ghd lvm2 [<20.00 GiB / <10.00 GiB free]PV /dev/sda2 VG centos lvm2 [54.00 GiB / 4.00 MiB free]Total: 3 [<84.00 GiB] / in use: 3 [<84.00 GiB] / in no VG: 0 [0 ]
[root@localhost ~]#pvsPV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- 54.00g 4.00m/dev/sdb1 ghd lvm2 a-- <10.00g <10.00g/dev/sdc ghd lvm2 a-- <20.00g <10.00g
[root@localhost ~]#pvdisplay --- Physical volume ---PV Name /dev/sdb1VG Name ghdPV Size 10.00 GiB / not usable 4.00 MiBAllocatable yes PE Size 4.00 MiBTotal PE 2559Free PE 2559Allocated PE 0PV UUID XWgeNp-JDpF-VqB6-8gF9-23Wh-TOUS-gBSJlC--- Physical volume ---PV Name /dev/sdcVG Name ghdPV Size 20.00 GiB / not usable 4.00 MiBAllocatable yes PE Size 4.00 MiBTotal PE 5119Free PE 2559Allocated PE 2560PV UUID 897008-qwNC-HabQ-cPcY-BA3c-IWTK-hlcqDl--- Physical volume ---PV Name /dev/sda2VG Name centosPV Size <54.01 GiB / not usable 4.00 MiBAllocatable yes PE Size 4.00 MiBTotal PE 13825Free PE 1Allocated PE 13824PV UUID UjOeXH-jU4j-jhcP-JNEN-D0XC-nHtB-SURY2m
三.扩容
卷组空间不够,要使用扩容
扩容——vg
vgextend 卷组名 设备名
vgextend vg1 /dev/sdd
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part
sdc 8:32 0 20G 0 disk
└─ghd-mysql 253:2 0 10G 0 lvm /mnt
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
Partition type:p primary (1 primary, 0 extended, 3 free)e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+4G
分区 2 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 4G 0 part
sdc 8:32 0 20G 0 disk
└─ghd-mysql 253:2 0 10G 0 lvm /mnt
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#vgextend ghd /dev/sdb2Physical volume "/dev/sdb2" successfully created.Volume group "ghd" successfully extended
##扩容先扩卷组
扩逻辑卷
lvextend -L 指定大小 逻辑卷名字
lxextend -L +5G /dev/ghd/mysql
(一定要+5G,不然是缩容,也就是指定该逻辑卷的大小为5G)
[root@localhost ~]#lvextend -L +5G /dev/ghd/mysql Size of logical volume ghd/mysql changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).Logical volume ghd/mysql successfully resized.#扩展逻辑卷 指定扩展大小扩5G(一定要“+”)
同步文件系统
tips:lvextend -L +5G /dev/ghd/mysql -r(-r代表立马同步文件系统)
[root@localhost ~]#xfs_growfs /mnt#同步文件系统meta-data=/dev/mapper/ghd-mysql isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160
[root@localhost ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.6G 46G 10% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 5.0G 179M 4.9G 4% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/ghd-mysql 15G 33M 15G 1% /mnt
[root@localhost ~]#
四.缩容
只有ext4可以缩减容量
解挂载
检测文件系统完整性
缩减文件系统
缩减逻辑卷上下一致
再挂载回去
五.删除
解挂载
remove命令删除
六.磁盘配额
1.实现磁盘配额的条件
- 需要Linux内核支持
- 安装xfsprogs与quota软件包
2.Linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户账号、组账号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
七.根目录扩容
vgdisplay 查看根的卷组
vgextend centos /dev/sdc 先扩卷组
lvexten -L +10G /dev/centos/root -r 再扩根的逻辑卷
[root@localhost ~]#vgdisplay --- Volume group ---VG Name ghdSystem ID Format lvm2Metadata Areas 3Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 0Max PV 0Cur PV 3Act PV 3VG Size <33.99 GiBPE Size 4.00 MiBTotal PE 8701Alloc PE / Size 3840 / 15.00 GiBFree PE / Size 4861 / <18.99 GiBVG UUID qRhIUi-zKfd-NS7S-9HZX-r8NT-GWhn-7AT8PD--- Volume group ---VG Name centosSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 3VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 1Act PV 1VG Size 54.00 GiBPE Size 4.00 MiBTotal PE 13825Alloc PE / Size 13824 / 54.00 GiBFree PE / Size 1 / 4.00 MiBVG UUID 1D0yqi-om1I-c0gi-Xlhy-XEJ3-XF9S-dQvqNB[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 4G 0 part
sdc 8:32 0 20G 0 disk
└─ghd-mysql 253:2 0 15G 0 lvm
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#scan
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 4G 0 part
sdc 8:32 0 20G 0 disk
└─ghd-mysql 253:2 0 15G 0 lvm
sdd 8:48 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#vgextend centos /dev/sddPhysical volume "/dev/sdd" successfully created.Volume group "centos" successfully extended#先扩卷组[root@localhost ~]#lvextend -L +10G /dev/centos/root -r#再扩根的逻辑卷Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 60.00 GiB (15360 extents).Logical volume centos/root successfully resized.
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 15728640
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 60G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 4G 0 part
sdc 8:32 0 20G 0 disk
└─ghd-mysql 253:2 0 15G 0 lvm
sdd 8:48 0 20G 0 disk
└─centos-root 253:0 0 60G 0 lvm /
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64