进阶学习——Linux系统LVM逻辑卷的建立与磁盘配额

目录

一、LVM

1.LVM概述

2.LVM机制的基本概念

3.LVM的管理命令

4.主要命令

二、LVM实验操作

1.先建磁盘

2.建立分区

3.设置物理卷

4.设置卷组

5.设置逻辑卷

6.安装文件系统

7.挂载  

8.总结

9.扩展

三、扩容

1.先扩容——vg

2.再扩逻辑卷

3.同步文件系统

四、缩容

1.解挂载

 2.检测文件系统完整性

3.缩减文件系统

4.缩减逻辑卷上下一致

5.再挂载回去

五、删除

1.先解挂载

2.remove命令删除

六、磁盘配额

1.实现磁盘配额的条件

2.Linux磁盘限额的特点

七、延伸

根目录扩容


一、LVM

1.LVM概述

LAM(Logical Volume Manager)逻辑卷管理

  • 动态调整磁盘容量,从而提高磁盘管理的灵活性
  • /boot分区用于存放引导文件,不能基于LVM创建

2.LVM机制的基本概念

PV(物理卷)

VG(卷组)

LV(逻辑卷)

PE是逻辑卷最小的存储单位,默认是4M 

3.LVM的管理命令

功能 物理卷管理 卷组管理 逻辑卷管理
Scan扫描 pvscan vgscan lvscan
Create建立 pvcreate vgcreate lvcreate
Display显示 pvddisplay vgdisplay lvdisplay
Remove删除 pvemove vgremove lvremove
Extend扩展 —— vgextend lvextend
Reduce减少 —— vgreduce lvreduce

4.主要命令

pvcreate  设备名1  [设备名2......]

vgcreate  卷组名  物理卷名1  物理卷名2

lvcreate  -L   容量大小  -n  逻辑卷名  卷组名

lvextend  -L  +大小  /dev/卷组名/逻辑卷名

二、LVM实验操作

1.先建磁盘

2.建立分区

[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.
正在同步磁盘。

3.设置物理卷

[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

4.设置卷组

[root@localhost ~]#vgcreate ghd /dev/sdb1  /dev/sdc

#设置卷组


  Volume group "ghd" successfully created

5.设置逻辑卷

[root@localhost ~]#lvcreate -n mysql -L 10G ghd
  Logical volume "mysql" created.

#建立逻辑卷-n 指定逻辑卷名字mysql -L指定大小为10G(PE是ghd卷组中来的)


[root@localhost ~]#ll /dev/mapper/ghd-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

#逻辑卷有两个名字


6.安装文件系统

[root@localhost ~]#mkfs.xfs /dev/ghd/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

7.挂载  

[root@localhost ~]#mount /dev/ghd/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

8.总结

  • 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卷组中来的

9.扩展

scan  display都可以查看当前物理卷或者卷组的详细信息

[root@localhost ~]#pvscan
  PV /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 ~]#pvs
  PV         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/sdb1
  VG Name               ghd
  PV Size               10.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2559
  Free PE               2559
  Allocated PE          0
  PV UUID               XWgeNp-JDpF-VqB6-8gF9-23Wh-TOUS-gBSJlC
   
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               ghd
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               2559
  Allocated PE          2560
  PV UUID               897008-qwNC-HabQ-cPcY-BA3c-IWTK-hlcqDl
   
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <54.01 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              13825
  Free PE               1
  Allocated PE          13824
  PV UUID               UjOeXH-jU4j-jhcP-JNEN-D0XC-nHtB-SURY2m

三、扩容

卷组空间不够,要使用扩容

1.先扩容——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/sdb2
  Physical volume "/dev/sdb2" successfully created.
  Volume group "ghd" successfully extended
##扩容先扩卷组

2.再扩逻辑卷

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(一定要“+”)

3.同步文件系统

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可以缩减容量

1.解挂载

 2.检测文件系统完整性

3.缩减文件系统

4.缩减逻辑卷上下一致

5.再挂载回去

五、删除

1.先解挂载

2.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               ghd
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <33.99 GiB
  PE Size               4.00 MiB
  Total PE              8701
  Alloc PE / Size       3840 / 15.00 GiB
  Free  PE / Size       4861 / <18.99 GiB
  VG UUID               qRhIUi-zKfd-NS7S-9HZX-r8NT-GWhn-7AT8PD
   
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               54.00 GiB
  PE Size               4.00 MiB
  Total PE              13825
  Alloc PE / Size       13824 / 54.00 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG 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/sdd
  Physical 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

 

 

相关推荐

  1. LiunxLVM磁盘配额

    2023-12-30 19:14:03       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-30 19:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-30 19:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-30 19:14:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-30 19:14:03       20 阅读

热门阅读

  1. Python 变量:创建、类型、命名规则和作用域详解

    2023-12-30 19:14:03       39 阅读
  2. 微服务(2)

    2023-12-30 19:14:03       34 阅读
  3. Spring Boot应用程序中实现多态切换多数据源

    2023-12-30 19:14:03       37 阅读
  4. C++协程和线程的区别?详细介绍一下C++协程

    2023-12-30 19:14:03       39 阅读
  5. 解决生成的insert语句内有单引号的情况

    2023-12-30 19:14:03       36 阅读
  6. ceph之rados设计原理与实现:crush算法

    2023-12-30 19:14:03       39 阅读
  7. Kubernetes 网络架构

    2023-12-30 19:14:03       34 阅读
  8. Python中的函数

    2023-12-30 19:14:03       31 阅读
  9. Matlab实时读取串口数据并实时画图方法

    2023-12-30 19:14:03       44 阅读