磁盘系统管理-2 LVM和磁盘配额
作者:互联网
概述
了解查看
LVM 概述#
全称Logical Volume Manager,可以动态调整磁盘容量,提高磁盘管理灵活性。
在安装CentOS 7的过程中选择自动分区时,默认就是以LVM的方案安装的系统。
但是/boot分区必须独立出来,不能基于LVM创建。
PV 物理卷#
物理卷,Physical Volume,是LVM机制的基本存储设备,通常对应一个普通分区或是整个硬盘。
创建物理卷时,会在分区或磁盘头部创建一个用于记录LVM属性的保留区块,并把存储空间分割成默认大小为4MB的基本单元(Physical Extend,PE),从而构成物理卷。
普通分区先转换分区类型为8e;整块硬盘,可以将所有的空间划分为一个主分区再做调整。
VG 卷组#
卷组,Volume Group,是由一个或多个物理卷组成的一个整体。可以动态添加、移除物理卷,创建时可以指定PE大小。
LV 逻辑卷#
逻辑卷,Logical Volume,建立在卷组之上,与物理卷没有直接关系。格式化后,即可挂载使用。
三者关系#
通过以上对三者的解释可以看出,建立LVM的过程。首先,将普通分区或整个硬盘创建为物理卷;然后,将一个或多个物理卷创建为卷组;最后,在卷组上分割不同的数据存储空间形成逻辑卷。有了逻辑卷,就可以格式化、挂载使用了。
LVM常用命令
功能 | PV 管理命令 | VG 管理命令 | LV 管理命令 |
Scan(扫描) | pvscan | vgscan | lvscan |
Create(建立) | pvcreate | vgcreate | lvcreate |
Display(显示) | pvdisplay | vgdisplay | lvdisplay |
Remove(移除) | pvremove | vgremove | lvremove |
Extend(扩展) | / | vgextend | lvextend |
Reduce(减少) | / | vgreduce | lvreduce |
LVM实验
硬盘分区
[root@gh1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@gh1 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x184bcc5e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@gh1 ~]# fdisk -l /dev/sd{b,c} | grep -i "linux lvm"
/dev/sdb1 2048 20971519 10484736 8e Linux LVM
/dev/sdc1 2048 20971519 10484736 8e Linux LVM
转换物理卷
[root@gh1 ~]# pvcreate /dev/sd{b,c}1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
创建名称为juan01卷组,并添加sdb1和sdc1
[root@gh1 ~]# vgcreate juan01 /dev/sd{b,c}1
Volume group "juan01" successfully created
划分大小为15G,名称为luoji01的逻辑卷,再扩容10G,剩下的空间创建名称为逻辑02的逻辑卷
[root@gh1 ~]# lvcreate -L 15G -n luoji01 juan01
Logical volume "luoji01" created.
[root@gh1 ~]# lvextend -L +10G /dev/juan01/luoji01
Size of logical volume juan01/luoji01 changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).
Logical volume juan01/luoji01 successfully resized.
[root@gh1 ~]# lvcreate -l 100%free -n luoji02 juan01
Logical volume "luoji02" created.
格式化逻辑卷,stu01为xfs,stu02为ext4,
[root@gh1 ~]# mkfs.xfs /dev/juan01/luoji01
meta-data=/dev/juan01/luoji01 isize=512 agcount=4, agsize=1638400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=6553600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3200, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@gh1 ~]# mkfs.ext4 /dev/juan01/luoji02
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
983040 inodes, 3930112 blocks
196505 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
设置自动挂载,挂载后就可以使用了。
[root@gh1 ~]# mkdir /mnt/guazai{10,11}
[root@gh1 ~]# vim /etc/fstab
/dev/juan01/luoji01 /mnt/guazai10 xfs defaults 0 0
/dev/juan01/luoji02 /mnt/guazai11 ext4 defaults 0 0
[root@gh1 ~]# mount -a
[root@gh1 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 10G 4.5G 5.6G 45% /
devtmpfs devtmpfs 974M 0 974M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 11M 981M 2% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 144M 54M 74% /boot
tmpfs tmpfs 199M 12K 199M 1% /run/user/42
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/mapper/juan01-luoji01 xfs 25G 33M 25G 1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4 15G 41M 14G 1% /mnt/guazai11
扩容实验
添加一块10G硬盘sdd,类型改为Linux LVM,ID为8e
[root@gh1 ~]# fdisk -l /dev/sd{b..d} | grep -i "linux lvm"
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
/dev/sdd1 2048 20971519 10484736 8e Linux LVM
将、/dev/sdd1转换物理卷
[root@gh1 ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
查看juan01卷组,进行扩容并再次查看
[root@gh1 ~]# vgdisplay juan01
--- Volume group ---
VG Name juan01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 10238 / 39.99 GiB
Free PE / Size 0 / 0
VG UUID F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn
[root@gh1 ~]# vgextend juan01 /dev/sdd1
Volume group "juan01" successfully extended
[root@gh1 ~]# vgdisplay juan01
--- Volume group ---
VG Name juan01
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 3
Act PV 3
VG Size <49.99 GiB
PE Size 4.00 MiB
Total PE 12797
Alloc PE / Size 10238 / 39.99 GiB
Free PE / Size 2559 / <10.00 GiB
VG UUID F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn
对luoji01和luoji02扩容5G
[root@gh1 ~]# lvextend -L +5G /dev/juan01/luoji01
Size of logical volume juan01/luoji01 changed from 25.00 GiB (6400 extents) to 30.00 GiB (7680 extents).
Logical volume juan01/luoji01 successfully resized.
[root@gh1 ~]# lvextend -l +100%free /dev/juan01/luoji02
Size of logical volume juan01/luoji02 changed from 14.99 GiB (3838 extents) to <19.99 GiB (5117 extents).
Logical volume juan01/luoji02 successfully resized.
使用xfs_growfs
和resize2fs在线调整大小
[root@gh1 ~]# xfs_growfs /dev/juan01/luoji01
meta-data=/dev/mapper/juan01-luoji01 isize=512 agcount=4, agsize=1638400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=6553600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3200, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 6553600 to 7864320
[root@gh1 ~]# resize2fs /dev/juan01/luoji02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/juan01/luoji02 is mounted on /mnt/guazai11; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/juan01/luoji02 is now 5239808 blocks long.
[root@gh1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 10G 4.5G 5.6G 45% /
devtmpfs devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs tmpfs 1.5G 11M 1.5G 1% /run
tmpfs tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 144M 54M 74% /boot
/dev/mapper/juan01-luoji01 xfs 30G 33M 30G 1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4 20G 44M 19G 1% /mnt/guazai11
tmpfs tmpfs 299M 12K 299M 1% /run/user/42
tmpfs tmpfs 299M 0 299M 0% /run/user/0
卸载实验
umount卸载挂载
[root@gh1 ~]# umount /mnt/guazai11 /mnt/guazai10
lvremove移出卷组中所有逻辑卷
[root@gh1 ~]# lvremove /dev/juan01/luoji02
Do you really want to remove active logical volume juan01/luoji02? [y/n]: y
Logical volume "luoji02" successfully removed
[root@gh1 ~]# lvremove /dev/juan01/luoji01
Do you really want to remove active logical volume juan01/luoji01? [y/n]: y
Logical volume "luoji01" successfully removed
vgremove移出卷组
[root@gh1 ~]# vgremove juan01
Do you really want to remove volume group "juan01" containing 1 logical volumes? [y/n]: y
Logical volume juan01/luoji01 contains a filesystem in use.
pvremove移出物理卷
[root@gh1 ~]# pvremove /dev/sd{b..d}
Device /dev/sdb excluded by a filter.
Device /dev/sdc excluded by a filter.
Device /dev/sdd excluded by a filter.
磁盘配额
磁盘配额概述
1.作用范围:只在指定的分区有效。
2.限制对象:主要针对用户、组进行限制,对组账号限制,组内所有用户的使用总和不能超过限制。
3.限制类型:磁盘容量限制(Block),默认单位KB、文件数量限制(Inode)。
4.限制方法:软限制、硬限制。软限制默认7天内允许超过,会有警告。硬限制不允许超过,硬限制应当比软限制大,否者软限制失效。
xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名' 挂载点
xfs实验
关闭SELinux,若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。
[root@gh1 ~]# setenforce 0
分区sdb1,xfs格式化,挂载
临时添加挂载
[root@gh1 ~]# fdisk /dev/sdb1
[root@gh1 ~]# mkfs.xfs /dev/sdb1
[root@gh1 ~]# mount -o usrquota,grpquota /dev/sdb1 /data/shiya
永久添加挂载
[root@localhost ~]# vim /etc/fstab
//添加
/dev/sdb1 /data/shiya xfs defaults,usrquota,grpquota 0 0
查看sdb1的磁盘配额是否生效
[root@gh1 ~]# mount |grep sdb1
/dev/sdb1 on /data/shiya type xfs (rw,relatime,attr2,inode64,noquota)
如果未成功重新挂载
[root@gh1 ~]# umount /mnt/stu01/
[root@gh1 ~]# mount -a
[root@gh1 ~]# df -Th |grep sdb1
/dev/sdb1 xfs 10G 33M 10G 1% /data/shiya
创建名为ceshi的测试用户
[root@gh1 ~]# useradd ceshi && echo "000000" | passwd --stdin ceshi
更改用户 ceshi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
设置磁盘配额数据
[root@gh1 ~]# xfs_quota -x -c 'limit -u bsoft=100M bhard=200M isoft=2ihard=5 ceshi' /data/shiya/
方便测试,放开权限,切换到ceshi用户
[root@gh1 ~]# chmod 777 /data/shiya/
[root@gh1 ~]# su - ceshi
文件数量配额测试
[ceshi@gh1 shiya]$ touch {1..8}.txt
touch: 无法创建"8.txt": 超出磁盘限额
[ceshi@gh1 shiya]$ ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt
[ceshi@gh1 shiya]$ rm -f *
磁盘空间配额测试
[ceshi@gh1 shiya]$ dd if=/dev/zero of=/data/shiya/1.txt bs=10M count=25
dd: 写入"/data/shiya/1.txt" 出错: 超出磁盘限额
记录了21+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,0.628763 秒,334 MB/秒
[ceshi@gh1 shiya]$ ls -lh
总用量 200M
-rw-rw-r-- 1 ceshi ceshi 200M 7月 5 18:00 1.txt
[ceshi@gh1 shiya]$ touch 2.txt
touch: 无法创建"2.txt": 超出磁盘限额
查看配额使用情况
[ceshi@gh1 shiya]$ su root
密码:
[root@gh1 shiya]# xfs_quota -x -c 'report -abi' /data/shiya/
User quota on /data/shiya (/dev/sdb1)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
---------- -------------------------------------------------- --------------------------------------------------
root 0 0 0 00 [--------] 3 0 0 00 [--------]
ceshi 204800 102400 204800 00 [6 days] 1 5 7 00 [--------]
Group quota on /data/shiya (/dev/sdb1)
Blocks Inodes
Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
---------- -------------------------------------------------- --------------------------------------------------
root 0 0 0 00 [--------] 3 0 0 00 [--------]
ceshi 204800 0 0 00 [--------] 1 0 0 00 [--------]
标签:系统管理,gh1,luoji01,dev,juan01,LVM,磁盘,xfs,root 来源: https://www.cnblogs.com/970618z/p/16448282.html