3.6 第六章:Linux的磁盘管理

本文详细介绍了Linux系统的磁盘管理,包括使用df和du命令查看磁盘容量,磁盘分区与格式化,挂载/卸载磁盘,通过创建swap文件增加虚拟内存,以及深入探讨了LVM的概念、工作原理和操作,如物理卷、卷组和逻辑卷的创建、扩展与删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第六章:Linux的磁盘管理

一、查看磁盘或者目录的容量

1.命令df

用户查看已挂载磁盘的总容量、使用容量、剩余容量等;

[root@zl_cloud ~]# df
文件系统                   1K-块   已用     可用 已用% 挂载点
/dev/mapper/centos-root 18307072 996588 17310484    6% /
devtmpfs                  923888      0   923888    0% /dev
tmpfs                     934328      0   934328    0% /dev/shm
tmpfs                     934328   8864   925464    1% /run
tmpfs                     934328      0   934328    0% /sys/fs/cgroup
/dev/sda1                 508588 127320   381268   26% /boot
tmpfs                     186868      0   186868    0% /run/user/0
tmpfs                     186868      0   186868    0% /run/user/1004
[root@zl_cloud ~]# 
  • -i:表示查看inodes的使用情况;如已使用100%,即使磁盘空间有富余,也会提示磁 盘空间已满。
  • -h:表示使用合适的单位显示;
  • -k、-m:分别表示以KB、MB为单位显示;

2.命令du

查看某个目录或文件所占的大小;格式为:du 【-选项】 【文件名或目录名】。不加参数的话只会列出目录(包含子目录的大小)。不指定单位的话默认显示单位为“KB”。

  • -a:表示全部文件和目录的大小都列出来;
  • -b:表示列出的值以B为单位输出;
  • -k:表示以KB的单位输出;
  • -m:表示以MB的单位输出;
  • -h:表示系统自动调节单位;
  • -c:表示最后一行会加总用量;
  • -s:表示只列出总和。

二、磁盘的分区和格式化

1.增加虚拟磁盘

点击所需要增加虚拟硬盘的虚拟机,右击设置:
在这里插入图片描述

点击添加,在选择硬盘,点击下一步:
在这里插入图片描述
默认不需更改,点击下一步:
在这里插入图片描述
默认不需更改,点击下一步:
在这里插入图片描述
改成你想添加多大的硬盘容量(我填了5g),下面选择将虚拟磁盘存储为单个文件,点击下一步:
在这里插入图片描述
自己改一个名字,不改用默认的也可以,然后点击完成:
在这里插入图片描述
然后就可以看到新增的硬盘了,最后重启启动一下系统就可以了。
在这里插入图片描述

2.命令fdisk

它是Linux下磁盘的分区工具,但是只能划分小于2TB的分区。格式为:fdisk 【-l】 【设备名称】

[root@zl_cloud ~]# fdisk -l /dev/sda1

磁盘 /dev/sda1:524 MB, 524288000 字节,1024000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@zl_cloud ~]# 

若fdisk 不加-l接设备名称时,则会进入对磁盘分区操作的模式:

[root@zl_cloud ~]# fdisk /dev/sda1
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x9399d9fc 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table [root@zl_cloud ~]# 
to disk and exit
   x   extra functionality (experts only)
  • p:表示打印当前磁盘的分区情况;
  • n:表示建立一个新的分区;
  • w:表示保存;
  • q:表示退出;
  • d:表示删除一个分区。
[root@zl_cloud ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x69a1a39a 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69a1a39a

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): e
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):  //回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759)://回车
将使用默认值 10485759
分区 1 已设置为 Extended 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69a1a39a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856    5  Extended

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)

这里extended表示拓展分区,primary表示主分区,logical表示逻辑分区。这里表示如果把第1个分区定位拓展分区,并且把全部空间都划分给拓展分区,那么在继续分区时,会提示你选择分区类型为主分区还是逻辑分区。Primary:1,2,3 ;extended:4 ;logical:5开始,因为前四个为主分区或者拓展分区。


Select (default p): l
添加逻辑分区 5
起始 扇区 (4096-10485759,默认为 4096):
将使用默认值 4096
Last 扇区, +扇区 or +size{K,M,G} (4096-10485759,默认为 10485759):+1000M
分区 5 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69a1a39a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856    5  Extended
/dev/sdb5            4096     2052095     1024000   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (2054144-10485759,默认为 2054144):
将使用默认值 2054144
Last 扇区, +扇区 or +size{K,M,G} (2054144-10485759,默认为 10485759):+1000M
分区 6 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69a1a39a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856    5  Extended
/dev/sdb5            4096     2052095     1024000   83  Linux
/dev/sdb6         2054144     4102143     1024000   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@zl_cloud ~]# 

查看更改后的磁盘:

[root@zl_cloud ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69a1a39a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856    5  Extended
/dev/sdb5            4096     2052095     1024000   83  Linux
/dev/sdb6         2054144     4102143     1024000   83  Linux
[root@zl_cloud ~]# 

三、格式化磁盘分区

==磁盘分区虽然已经分好了,但是暂时还不能用,需要对每一个分区进行格式化。==所谓格式化就是安装文件系统。

1.命令mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4和 mkfs.xfs

mke2fs命令常用的选项如下所示:

  • -b:表示分区时设定每个数据区块所占用的空间大小;
  • -i:表示设定inode的大小;
  • -N:表示设定inode的数量;
  • -c:表示在格式化前检测一下磁盘是否有问题;
  • -L:表示预设该分区的标签;
  • -j:表示建立ext3格式的分区;如果用mkfs.ext3就不用加这个了。
  • -t:用来指文件系统的类型;可以是ext2、ext3,也可以是ext4。
[root@zl_cloud ~]# mke2fs -t ext4 /dev/sdb5  //相当于mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64000 inodes, 256000 blocks
12800 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=262144000
8 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@zl_cloud ~]# 

然而mke2fs并不支持把分区格式化成CFS,而只能使用mkfs.xfs:

[root@zl_cloud ~]# mkfs.xfs /dev/sdb6
meta-data=/dev/sdb6              isize=256    agcount=4, agsize=64000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=256000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@zl_cloud ~]# 

-L选项指定标签,标签会在挂载磁盘时使用,也可以写入配置文件:

[root@zl_cloud ~]# mke2fs -L TEST -t ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=TEST
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64000 inodes, 256000 blocks
12800 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=262144000
8 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@zl_cloud ~]# 

2.命令e2label

该命令用于查看或修改分区的标签,只支持ext格式的文件系统,不支持XFS文件系统。

[root@zl_cloud ~]# e2label /dev/sdb5
TEST
[root@zl_cloud ~]# e2label /dev/sdb5 TEST1
[root@zl_cloud ~]# e2label /dev/sdb5
TEST1
[root@zl_cloud ~]# 

四、挂载/卸载磁盘

格式化后的磁盘其实是一个b(块设备文件)。

1.命令mount

挂载前许建立一个挂载点,它是以目录的形式出现的。一旦把某个分区挂载到这个挂载目录下,要往这个目录写数据时,就都会写到该分区中。所以在挂载该分区前,挂载目录必须是个空目录,若不是空目录的话,一旦挂载,该目录以前的东西就看不到了(数据并没有丢失),除非卸载该分区。
建立目录和空白文档(建立空白文档时想展示挂载后该目录以前的东西会怎么变化):

[root@zl_cloud ~]# mkdir /newdir
[root@zl_cloud ~]# touch /newdir/newfile.txt
[root@zl_cloud ~]# ls /newdir/
newfile.txt
[root@zl_cloud ~]# 

将/dev/sdb5挂载到/newdir后,原来的txt文件就看不到了。

[root@zl_cloud ~]# mount /dev/sdb5 /newdir/  //也可以用mount LABEL=TEST1 /newdir挂载
[root@zl_cloud ~]# ls /newdir/
lost+found
[root@zl_cloud ~]# df -h | grep -v tmpfs
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  966M   17G    6% /
/dev/sda1                497M  125M  373M   26% /boot
/dev/sdb5                969M  2.5M  900M    1% /newdir

解挂:

[root@zl_cloud ~]# umount /newdir/  //umount可跟挂载点、也可跟分区名。
[root@zl_cloud ~]# df -h | grep tmpfs
devtmpfs                 903M     0  903M    0% /dev
tmpfs                    913M     0  913M    0% /dev/shm
tmpfs                    913M  8.7M  904M    1% /run
tmpfs                    913M     0  913M    0% /sys/fs/cgroup
tmpfs                    183M     0  183M    0% /run/user/0
[root@zl_cloud ~]# df -h | grep -v tmpfs
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  966M   17G    6% /
/dev/sda1                497M  125M  373M   26% /boot

2./etc/fstab配置文件

[root@zl_cloud ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Mar  4 20:11:10 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=387a5d19-6866-459d-9619-a9dd8fe40aa6 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
[root@zl_cloud ~]# 
  • 第1列:分区的标识;可以写分区的LABEL、分区的UUID,也可以写分区名(/dev/sda1)
  • 第2列:挂载点;
  • 第3列:分区的格式;
  • 第4列:mount的一些挂载参数;一般情况下直接写defaults即可;
    下列是一些常用选项:
    async/sync: async表示与磁盘和内存不同步;系统每隔一段时间就会把内存数 据写入磁盘中,而sync则会时时同步内存和磁盘中的数据。
    auto/noauto:表示开机自动挂载/不自动挂载;
    default:表示按照大多数永久文件系统的默认值设置挂载定义.它包含了rw、 suid、dev、exec、auto、nouser和async;
    ro:表示按只读权限挂载;
    rw:表示按可读可写权限挂载;
    exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为 noexec,否则将无法使用系统,甚至连mount命令都无法使用。
    user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全.清用 nouser;
    suid/nosuid:表示允许/不允许分区suid属性,一般设置nosuid;
    usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁 盘制度;
    grquota:表示启动群组的磁盘配额模式。
  • 第5列:表示是否被dump备份。1表示备份,0表示不备份。
  • 第6列:开机时是否自检磁盘;1、2表示检测,0表示不检测。如果有多个分区需要开机自 动自检,就都设置成2,1检测完后会同时检测2。

在/etc/fstab文件中增加一行来新增分区:

[root@zl_cloud ~]# vi /etc/fstab
LABEL=TEST1                     /newdir         ext4    defaults        0 0  //加上这个

然后确保之前挂载的/DEV/SDB5已经卸载。

[root@zl_cloud ~]# mount -a
[root@zl_cloud ~]# df -h | grep -v tmpfs
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  966M   17G    6% /
/dev/sda1                497M  125M  373M   26% /boot
/dev/sdb5                969M  2.5M  900M    1% /newdir
[root@zl_cloud ~]# 
  • -a:会把/etc/fstab中出现的所有磁盘分区挂载上;
  • -t:用来指定挂载的分区类型,默认不指定,会自动识别。
  • -o:用来指定挂载的分区有哪些特性,及/etc/fstab配置文件中的第4列那些。
[root@zl_cloud ~]# mkdir /newdir/dir1
[root@zl_cloud ~]# mount -o remount,ro,sync /dev/sdb5 /newdir
[root@zl_cloud ~]# mkdir /newdir/dir2
mkdir: 无法创建目录"/newdir/dir2": 只读文件系统
[root@zl_cloud ~]# mount |grep sdb5
/dev/sdb5 on /newdir type ext4 (ro,relatime,sync,seclabel,data=ordered)

-o选项指定了ro参数,所以只读了。
重新挂载恢复读写:

[root@zl_cloud ~]# mount -o remount /newdir/
[root@zl_cloud ~]# mkdir /newdir/dir2
[root@zl_cloud ~]# ls /newdir
dir1  dir2  lost+found
[root@zl_cloud ~]# 

五、建立一个swap文件增加虚拟内存

从装系统时就接触过这个swap了,它类似与windows的虚拟内存,分区的时候一般大小为内存的2倍,如果你的内存超过8G,那么你分16G似乎是没有必要了。分16G足够日常交换了。然而,还会有虚拟内存不够用的情况发生。如果真遇到了,莫非还要重新给磁盘分区?当然不能,那我们就增加一个虚拟的磁盘出来。基本的思路就是:建立swapfile -> 格式化为swap格式 -> 启用该虚拟磁盘

1.建立swapfile

“if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件,它可以提供源源不断的 “0”, 关于它的其他信息请你在网上查一下资料。
“of” 指定目标文件
“bs” 定义块的大小
“count” 定义块的数量,这两个参数的多少决定了目标文件的大小,目标文件大小 = bs x count. 笔者用dd建了一个大小为400M的文件,然后格式化成swap格式。

[root@xnode1 ~]# dd if=/dev/zero of=/tmp/newdisk bs=4k count=102400
102400+0 records in
102400+0 records out
419430400 bytes (419 MB) copied, 7.92008 s, 53.0 MB/s

2.格式化swap

[root@xnode1 ~]# mkswap -f /tmp/newdisk 
Setting up swapspace version 1, size = 409596 KiB
no label, UUID=ce2c3b62-992f-42b8-8069-667bacc55a8e

3.挂载使用swap空间

[root@xnode1 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1824         118          72           8        1633        1529
Swap:          2047           0        2047
[root@xnode1 ~]# swapon /tmp/newdisk 
swapon: /tmp/newdisk: insecure permissions 0644, 0600 suggested.
[root@xnode1 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1824         119          94           8        1611        1529
Swap:          2447           0        2447

前后对比swap分区多了400M空间。其中 “free” 这个命令用来查看内存使用情况, “-m” 表示以M为单位显示.

六、LVM讲解

1.什么是LVM

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

2.为什么要使用LVM

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理.因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

3.LVM工作机制

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

4.逻辑卷管理概念

1)物理卷(PV, Physical Volume)

物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.

2)卷组(VG, Volume Group)

LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

3)逻辑卷(LV, Logical Volume)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)
具体操作:

①检查系统中是否安装了LVM管理工具
[root@xnode1 ~]# rpm -qa | grep lvm
lvm2-libs-2.02.130-5.el7.x86_64
lvm2-2.02.130-5.el7.x86_64
②如果未安装,则使用yum 方式安装

# yum install -y lvm*

5.手动添加1个硬盘:sdb 30G

1)创建物理卷PV:

基本PV命令:
pvcreate 将物理分区新建为pv
pvs/pvscan 查看系统里有pv的磁盘
pvdisplay 显示系统上面的pv状态
pvremove 删除pv
创建pv

准备使用: 1个磁盘: /dev/sdb 来完成LVM:

[root@xnode1 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

使用pvs查看新建的PV:

[root@xnode1 ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree 
  /dev/sda2  centos lvm2 a--  49.51g 44.00m
  /dev/sdb          lvm2 ---  30.00g 30.00g

2)创建卷组vg

有关vg的命令:

# vgcreate [-s xM] vgName /dev/sd …… //新建vg,-s后面接pe的大小(可选),单位是M,G,可以放多块pv

vgextend 扩展vg,就是增加pv
vgs/vgscan 查看系统里有vg的磁盘
vgdisplay 显示系统上面的vg状态
vgremove 删除vg
vgreduce 在vg里删除pv
创建vgEric 并查看:
[root@xnode1 ~]# vgcreate -s 16M vgEric /dev/sdb
  Volume group "vgEric" successfully created
[root@xnode1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 49.51g 44.00m
  vgEric   1   0   0 wz--n- 29.98g 29.98g

3) 创建逻辑卷lv

有关lv的命令:

# lvcreate -l pe num /-L size -n lvname vgName  //新建lv,-l指定pe的个数,-L指定容量,M,G

lvextend 增加容量
lvs/lvscan 查看系统里有lv的磁盘
lvdisplay 显示系统上面的lv状态
lvremove 删除lv
lvreduce 在lv里减少容量
创建lvEric,并查看:
[root@xnode1 ~]# lvcreate -l 512 -n lvEric vgEric
  Logical volume "lvEric" created.
[root@xnode1 ~]# lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- 47.46g                                                    
  swap   centos -wi-ao----  2.00g                                                    
  lvEric vgEric -wi-a-----  8.00g  
格式化新建的LV:

# mkfs.ext4 /dev/vgEric/lvEric

挂载使用:
[root@xnode1 ~]# mount /dev/vgEric/lvEric /mnt/
[root@xnode1 ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/centos-root     48G  6.4G   42G  14% /
devtmpfs                   903M     0  903M   0% /dev
tmpfs                      913M     0  913M   0% /dev/shm
tmpfs                      913M  8.6M  904M   1% /run
tmpfs                      913M     0  913M   0% /sys/fs/cgroup
/dev/sda1                  497M  125M  373M  25% /boot
tmpfs                      183M     0  183M   0% /run/user/0
/dev/mapper/vgEric-lvEric  7.8G   36M  7.3G   1% /mnt

下面我们将对LVM进行扩容和缩减操作,所以向/mnt中写入测试数据以验证LVM 的磁盘动态管理

5.LVM的在线扩展

[root@xnode1 ~]# lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- 47.46g                                                    
  swap   centos -wi-ao----  2.00g                                                    
  lvEric vgEric -wi-ao----  8.00g                                                    
[root@xnode1 ~]# lvextend -L +5G /dev/vgEric/lvEric 
  Size of logical volume vgEric/lvEric changed from 8.00 GiB (512 extents) to 13.00 GiB (832 extents).
  Logical volume lvEric successfully resized.
[root@xnode1 ~]# lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- 47.46g                                                    
  swap   centos -wi-ao----  2.00g                                                    
  lvEric vgEric -wi-ao---- 13.00g 

查看实际的磁盘容量,发现并没改变,需要通过resize2fs进行扩容激活

[root@xnode1 ~]# resize2fs /dev/vgEric/lvEric 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vgEric/lvEric is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vgEric/lvEric is now 3407872 blocks long.

[root@xnode1 ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/centos-root     48G  6.4G   42G  14% /
devtmpfs                   903M     0  903M   0% /dev
tmpfs                      913M     0  913M   0% /dev/shm
tmpfs                      913M  8.6M  904M   1% /run
tmpfs                      913M     0  913M   0% /sys/fs/cgroup
/dev/sda1                  497M  125M  373M  25% /boot
tmpfs                      183M     0  183M   0% /run/user/0
/dev/mapper/vgEric-lvEric   13G   40M   13G   1% /mnt

6.删除LVM

如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。

1)卸载文件系统

# umount /mnt/

2)删除lv

# lvremove /dev/mapper/vgEric-lvEric

3)删除vg

# vgremove /dev/mapper/vgEric

4)删除pv

# pvremove /dev/sdb

LVM删除成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值