LVM
PV物理卷:物理卷时LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷。
VG卷组:有一个或多个物理卷组成一个整体,即成为卷组,在卷组中可以动态地添加或移除物理卷。
LV逻辑卷:从卷组中分割出的一块空间,形成逻辑卷。使用mkfs等工具可在逻辑卷上创建文件系统。
LVM的管理命令
主要命令
pvcreate 设备名1 设备名2
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
LVM操作主要命令步骤
1,关闭主机,添加两块新硬盘,重启主机
2,先使用fdisk工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1,sdc1,并把分区类型的id标记号改为“8e”
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb988f78a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
3,创建物理卷
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@localhost ~]#
4创建卷组,卷组名为cx
[root@localhost ~]# vgcreate cx /dev/sdb /dev/sdc
Volume group "cx" successfully created
[root@localhost ~]#
5,创建逻辑卷,逻辑卷名为cx1,容量为20GB,生成的文件路径为/dev/cx/cx1
[root@localhost ~]# lvcreate -L 20G -n cx1 cx
Logical volume "cx1" created.
[root@localhost ~]#
6,对逻辑卷进行格式化,创建XFS文件系统,并挂载到/opt目录下
[root@localhost ~]# mkfs -t xfs /dev/cx/cx1
meta-data=/dev/cx/cx1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, 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/cx/cx1 /opt
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 60G 5.3G 55G 9% /
/dev/sda1 xfs 497M 165M 333M 34% /boot
tmpfs tmpfs 394M 12K 394M 1% /run/user/42
tmpfs tmpfs 394M 0 394M 0% /run/user/0
/dev/mapper/cx-cx1 xfs 20G 33M 20G 1% /opt
[root@localhost ~]#
7,再扩容
[root@localhost ~]# lvextend -L +10G -r /dev/cx/cx1 扩容10G并刷新
Size of logical volume cx/cx1 changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).
Logical volume cx/cx1 successfully resized.
meta-data=/dev/mapper/cx-cx1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5242880, 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 5242880 to 7864320
最后查询一下是否扩容成功
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 59.5G 0 part
├─centos-root 253:0 0 59.5G 0 lvm /
└─centos-swap 253:1 0 8M 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─cx-cx1 253:2 0 30G 0 lvm /opt
sdc 8:32 0 20G 0 disk
└─cx-cx1 253:2 0 30G 0 lvm /opt
sr0 11:0 1 4.4G 0 rom
[root@localhost ~]#
成功从20G扩容到30G.
磁盘配额的概述
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
实现磁盘限额的条件
需要Linux内核支持
安装xfsprogs与quota软件包
Linux磁盘限额的特点**
作用范围:针对指定的文件系统(分区)
限制对象:用户账号、组账号
限制类型:磁盘容量、文件数量
限制方法:软限制、硬限制
CentOS7中设置磁盘配额步骤
1检查是否已安装xfsprogs和xfs_quota软件包
[root@localhost ~]# rpm -q xfsprogs quota
xfsprogs-4.5.0-22.el7.x86_64
quota-4.01-19.el7.x86_64
2,以支持配额功能的方式挂载文件系统
[root@localhost ~]# umount /dev/cx/cx1
[root@localhost ~]# mount -o usrquota,grpquota /dev/cx/cx1 /opt
编辑用户和组账户的配额设置
[root@localhost ~]# useradd zhangshuo
[root@localhost ~]# passwd zhangshuo
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard-50 zhangshuo' /opt/
4,验证磁盘配额功能
[root@localhost ~]# chomd 777 /opt
bash: chomd: 未找到命令...
相似命令是: 'chmod'
[root@localhost ~]# chmod 777 /opt
[root@localhost ~]# su zhangshuo
[zhangshuo@localhost root]$ cd /opt
[zhangshuo@localhost opt]$ dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
dd: 写入"/opt/ddtest.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
104857600字节(105 MB)已复制,0.257328 秒,407 MB/秒
[zhangshuo@localhost opt]$
[zhangshuo@localhost opt]$ ll -h
总用量 100M
-rw-rw-r--. 1 zhangshuo zhangshuo 100M 4月 4 16:27 ddtest.txt
[zhangshuo@localhost opt]$ [zhangshuo@localhost opt]$ dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=10
bash: [zhangshuo@localhost: 未找到命令...
[zhangshuo@localhost opt]$ dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=10 记录了10+0 的读入
记录了10+0 的写出
104857600字节(105 MB)已复制,0.0817764 秒,1.3 GB/秒
[zhangshuo@localhost opt]$
5,查看配额使用情况
查看所有可用分区的磁盘容量配额使用情况
[root@localhost ~]# xfs_quota -x -c 'report -a'
User quota on /opt (/dev/mapper/cx-cx1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
zhangshuo 102400 81920 102400 00 [6 days]
Group quota on /opt (/dev/mapper/cx-cx1)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
zhangshuo 102400 0 0 00 [--------]
[root@localhost ~]#
查看磁盘容量和文件数的报告
[root@localhost ~]# xfs_quota -x -c 'report -abih' User quota on /opt (/dev/mapper/cx-cx1)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 0 0 0 00 [------] 3 0 0 00 [------]
zhangshuo 100M 80M 100M 00 [6 days] 1 40 50 00 [------]
Group quota on /opt (/dev/mapper/cx-cx1)
Blocks Inodes
Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 0 0 0 00 [------] 3 0 0 00 [------]
zhangshuo 100M 0 0 00 [------] 1 0 0 00 [------]
[root@localhost ~]#