第六章: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删除成功