hellopasswd
LVM介绍
-
物理分区(Phycical Partions)
-
物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元 -
物理卷(Physical Volume,PV)
物理卷是指磁盘分区或者从逻辑上看起来和磁盘分区类似得设备(比如RAID设备) -
逻辑卷(Logical Volume,LV)
一个或多个物理卷组成一个逻辑卷。对于LVM而言,逻辑卷类似于非LVM系统中的磁盘分区。逻辑卷可以包含一个文件系统(比如/home或者/usr) -
卷组(Volume Group,VG)
一个或者多个逻辑卷组成一个卷组。对于LVM而言,逻辑卷类似于非LVM系统中的物理磁盘。卷组把多个逻辑卷组合再一起,形成了一个可管理的单元。 -
物理块(Physical Extent,PE)
物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑块的大小相同。 -
逻辑块(Logical Extent,LE)
逻辑卷按“块”为单位存储,再一卷组中的所有逻辑卷的块大小是相同的。
LVM实现过程:物理磁盘分区->物理卷->卷组->逻辑卷->格式化->挂载
准备磁盘分区
- fdisk /dev/sdb
- n 创建三个新分区,分别1G
- t 改变分区类型为8e
[root@localhost ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c37f3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 62914559 29154304 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe4f99297.
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe4f99297
Device Boot Start End Blocks Id System
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2099200-20971519, default 2099200):
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-20971519, default 20971519): +1G
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (4196352-20971519, default 4196352):
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-20971519, default 20971519): +1G
Partition 3 of type Linux and of size 1 GiB is set
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe4f99297
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
Command (m for help):
Command (m for help): t
Partition number (1-3, default 3): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): t
Partition number (1-3, default 3): 2
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5ec6916a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
Command (m for help): w
[root@localhost ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c37f3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 62914559 29154304 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5ec6916a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
准备物理卷
-
pvcreate /dev/sdb1
-
pvcreate /dev/sdb2
-
pvcreate /dev/sdb3
-
pvdisplay 列出当前的物理卷
-
pvremove /dev/sdb3 删除物理卷
安装lvm包
[root@localhost ~]# yum install -y lvm
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/2): extras/7/x86_64/primary_db | 129 kB 00:00:00
(2/2): updates/7/x86_64/primary_db | 3.6 MB 00:00:24
Loading mirror speeds from cached hostfile
* base: mirrors.shuosc.org
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
No package lvm available.
Error: Nothing to do
上面安装lvm时出现了问题,说明lvm软件包名不是为lvm,当我们知道某一个软件包里的某一个命令时,可以使用yum provides “路径”来查询到软件包
例如:[root@localhost ~]# yum provides "/*/pvcreate"
[root@localhost ~]# yum install -y lvm2
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
Determining fastest mirrors
* base: mirrors.btte.net
* extras: ftp.sjtu.edu.cn
* updates: mirrors.btte.net
Resolving Dependencies
--> Running transaction check
---> Package lvm2.x86_64 7:2.02.171-8.el7 will be installed
--> Processing Dependency: lvm2-libs = 7:2.02.171-8.el7 for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: device-mapper-persistent-data >= 0.7.0-0.1.rc6 for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: liblvm2app.so.2.2(Base)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_97)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_138)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_135)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_133)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_128)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_113)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_110)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_107)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_104)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_103)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_101)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper.so.1.02(DM_1_02_100)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02(Base)(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: liblvm2app.so.2.2()(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02()(64bit) for package: 7:lvm2-2.02.171-8.el7.x86_64
--> Running transaction check
---> Package device-mapper-event-libs.x86_64 7:1.02.140-8.el7 will be installed
---> Package device-mapper-libs.x86_64 7:1.02.84-14.el7 will be updated
--> Processing Dependency: device-mapper-libs = 7:1.02.84-14.el7 for package: 7:device-mapper-1.02.84-14.el7.x86_64
---> Package device-mapper-libs.x86_64 7:1.02.140-8.el7 will be an update
---> Package device-mapper-persistent-data.x86_64 0:0.7.0-0.1.rc6.el7 will be installed
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64
---> Package lvm2-libs.x86_64 7:2.02.171-8.el7 will be installed
--> Processing Dependency: device-mapper-event = 7:1.02.140-8.el7 for package: 7:lvm2-libs-2.02.171-8.el7.x86_64
--> Running transaction check
---> Package device-mapper.x86_64 7:1.02.84-14.el7 will be updated
---> Package device-mapper.x86_64 7:1.02.140-8.el7 will be an update
---> Package device-mapper-event.x86_64 7:1.02.140-8.el7 will be installed
---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================
Package Arch Version Repository Size
===================================================================================================
Installing:
lvm2 x86_64 7:2.02.171-8.el7 base 1.3 M
Installing for dependencies:
device-mapper-event x86_64 7:1.02.140-8.el7 base 180 k
device-mapper-event-libs x86_64 7:1.02.140-8.el7 base 179 k
device-mapper-persistent-data x86_64 0.7.0-0.1.rc6.el7 base 400 k
libaio x86_64 0.3.109-13.el7 base 24 k
lvm2-libs x86_64 7:2.02.171-8.el7 base 1.0 M
Updating for dependencies:
device-mapper x86_64 7:1.02.140-8.el7 base 280 k
device-mapper-libs x86_64 7:1.02.140-8.el7 base 312 k
Transaction Summary
===================================================================================================
Install 1 Package (+5 Dependent packages)
Upgrade ( 2 Dependent packages)
Total download size: 3.6 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/8): device-mapper-event-1.02.140-8.el7.x86_64.rpm | 180 kB 00:00:00
(2/8): libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00
(3/8): device-mapper-1.02.140-8.el7.x86_64.rpm | 280 kB 00:00:01
(4/8): device-mapper-libs-1.02.140-8.el7.x86_64.rpm | 312 kB 00:00:01
(5/8): device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64.rpm | 400 kB 00:00:02
(6/8): device-mapper-event-libs-1.02.140-8.el7.x86_64.rpm | 179 kB 00:00:02
(7/8): lvm2-libs-2.02.171-8.el7.x86_64.rpm | 1.0 MB 00:00:02
(8/8): lvm2-2.02.171-8.el7.x86_64.rpm | 1.3 MB 00:00:03
---------------------------------------------------------------------------------------------------
Total 912 kB/s | 3.6 MB 00:00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 7:device-mapper-libs-1.02.140-8.el7.x86_64 1/10
Updating : 7:device-mapper-1.02.140-8.el7.x86_64 2/10
Installing : 7:device-mapper-event-libs-1.02.140-8.el7.x86_64 3/10
Installing : 7:device-mapper-event-1.02.140-8.el7.x86_64 4/10
Installing : 7:lvm2-libs-2.02.171-8.el7.x86_64 5/10
Installing : libaio-0.3.109-13.el7.x86_64 6/10
Installing : device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64 7/10
Installing : 7:lvm2-2.02.171-8.el7.x86_64 8/10
ln -s '/usr/lib/systemd/system/lvm2-lvmpolld.socket' '/etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket'
Cleanup : 7:device-mapper-libs-1.02.84-14.el7.x86_64 9/10
Cleanup : 7:device-mapper-1.02.84-14.el7.x86_64 10/10
Verifying : 7:device-mapper-event-libs-1.02.140-8.el7.x86_64 1/10
Verifying : 7:device-mapper-event-1.02.140-8.el7.x86_64 2/10
Verifying : 7:lvm2-libs-2.02.171-8.el7.x86_64 3/10
Verifying : 7:device-mapper-1.02.140-8.el7.x86_64 4/10
Verifying : 7:device-mapper-libs-1.02.140-8.el7.x86_64 5/10
Verifying : 7:lvm2-2.02.171-8.el7.x86_64 6/10
Verifying : device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64 7/10
Verifying : libaio-0.3.109-13.el7.x86_64 8/10
Verifying : 7:device-mapper-libs-1.02.84-14.el7.x86_64 9/10
Verifying : 7:device-mapper-1.02.84-14.el7.x86_64 10/10
Installed:
lvm2.x86_64 7:2.02.171-8.el7
Dependency Installed:
device-mapper-event.x86_64 7:1.02.140-8.el7
device-mapper-event-libs.x86_64 7:1.02.140-8.el7
device-mapper-persistent-data.x86_64 0:0.7.0-0.1.rc6.el7
libaio.x86_64 0:0.3.109-13.el7
lvm2-libs.x86_64 7:2.02.171-8.el7
Dependency Updated:
device-mapper.x86_64 7:1.02.140-8.el7 device-mapper-libs.x86_64 7:1.02.140-8.el7
Complete!
partprobe重载分区表
[root@localhost ~]# ls /dev/sdb
[root@localhost ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@localhost ~]# pvcreate /dev/sdb1
Device /dev/sdb1 not found (or ignored by filtering).
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 865M 27G 4% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 914M 0 914M 0% /dev/shm
tmpfs 914M 17M 897M 2% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sdb 10G 33M 10G 1% /mnt
/dev/sda1 197M 75M 123M 38% /boot
[root@localhost ~]# umount /mnt
pvcreate将物理磁盘分区为物理卷
[root@localhost ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
pvdisplay显示物理卷属性
[root@localhost ~]# pvdisplay
"/dev/sdb3" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID JeafFf-5aVO-xNf2-DUv6-17S2-N8Cg-f0E3vX
"/dev/sdb1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID DEzGdZ-eZpX-qWYI-XndU-e5X9-SEcT-MsiLCc
"/dev/sdb2" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID QI4y20-GOdg-8CBJ-PfZF-GO8l-ambD-f7Jikz
创建卷组
pvs输出格式化物理卷信息报表
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
vgcreate 创建lvm卷组
[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.99 GiB
PE Size 4.00 MiB
Total PE 510
Alloc PE / Size 0 / 0
Free PE / Size 510 / 1.99 GiB
VG UUID ad3wQ3-M3m1-btaW-ae4b-RhQl-9iPM-xBDFaS
vgs查询lvm卷组
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 1.99g 1.99g
vgremove 删除卷组
创建逻辑卷
lvcreate创建lvm逻辑卷
[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
Logical volume "lv1" created.
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 994M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
这时候我们会发现/dev/mapper/vg1-lv1这个目录,对以下两个路径,其实这个两个目录都是指向同一个目录的
[root@localhost ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 Nov 6 09:09 /dev/vg1/lv1 -> ../dm-0
[root@localhost ~]# ls -l /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 Nov 6 09:09 /dev/mapper/vg1-lv1 -> ../dm-0
[root@localhost ~]# mkdir /mnt/111
[root@localhost ~]# touch /mnt/1.txt
[root@localhost ~]# echo "22222" > /mnt/1.txt
扩容逻辑卷
- lvresize -L 300M /dev/vg1/lv1 #重置设置卷大小
- e2fsck -f /dev/vg1/lv1 #检查磁盘错误(ext4执行)
- resize2fs /dev/vg1/lv1 #更新逻辑卷信息(ext4执行)
- xfs_growfs /dev/vg1/lv1 #xfs文件系统需要执行
[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 993M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
不合规范,应当先
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
New size (50 extents) matches existing size (50 extents).
检查磁盘是否存在错误
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
更新逻辑卷
[root@localhost ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 204800 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 204800 blocks long.
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 993M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt
[root@localhost ~]# ls /mnt/
111 1.txt lost+found
[root@localhost ~]# cat /mnt/1.txt
22222
若扩容导致文件丢失,那么扩容就没有存在的意义
若格式为xfs那么方法有些不一样
缩减逻辑卷
- 先umount
- e2fsck -f /dev/vg1/lv1 #检查磁盘错误(ext)
- resize2fs /dev/vg1/lv1 100M #更新逻辑卷信息(ext)
- lvresize -L 100M /dev/vg1/lv1 #重新设置卷大小
xfs并不支持
[root@localhost ~]# umount /mnt/
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg1/lv1: 13/49400 files (7.7% non-contiguous), 11887/204800 blocks
[root@localhost ~]# resize2fs /dev/vg1/lv1 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 102400 blocks long.
[root@localhost ~]# lvresize -L 100M /dev/vg1/lv1
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 100.00 MiB (25 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID BTZG2e-59Qy-29ls-X6Ko-Dvbm-0zUp-2MTdpk
LV Write Access read/write
LV Creation host, time centos1133, 2017-11-06 09:05:29 +0800
LV Status available
# open 0
LV Size 100.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 100.00m
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# ls /mnt/
111 1.txt lost+found
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 994M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
[root@localhost ~]# umount /mnt/
lvm并不会因为缩容而导致文件丢失
xfs扩容
[root@localhost ~]# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# ls /mnt/
[root@localhost ~]# touch /mnt/2.txt
[root@localhost ~]# echo 123 > /mnt/2.txt
[root@localhost ~]# cat !$
cat /mnt/2.txt
123
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 100.00m
xfs扩容时不需要umount
[root@localhost ~]# lvresize -L 300M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 300.00m
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 994M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 97M 5.2M 92M 6% /mnt
[root@localhost ~]# xfs_growfs -L 300M /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
xfs_growfs: XFS_IOC_FSGROWFSLOG xfsctl failed: Invalid argument
无效的参数?
[root@localhost ~]# umount /dev/vg1/lv1
[root@localhost ~]# lvresize -L 310M /dev/vg1/lv1
Rounding size to boundary between physical extents: 312.00 MiB.
Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 312.00 MiB (78 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# xfs_growfs -L 310M /dev/vg1/lv1
xfs_growfs: /dev/vg1/lv1 is not a mounted XFS filesystem #必须挂载
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# xfs_growfs -L 310M /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
xfs_growfs: XFS_IOC_FSGROWFSLOG xfsctl failed: Invalid argument
[root@localhost ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 25600 to 79872
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 994M 27G 4% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 309M 5.5M 304M 2% /mnt
扩展卷组
- fdisk /dev/sdb #新增/dev/sdb5(逻辑分区8e) 2G
- pvcreate /dev/sdb5 #创建物理卷
- vgextend vg1 /dev/sdb5 #把物理卷加入卷组中
- lvresize -L 100M /dev/vg1/lv1 #重新设置卷大小
扩容卷组最高能扩到卷组一样大
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz--n- 1.99g <1.69g
sdb1和sdb2组成卷组,而sdb3是空闲的
[root@localhost ~]# vgextend vg1 /dev/sdb3
Volume group "vg1" successfully extended
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size <2.99 GiB
PE Size 4.00 MiB
Total PE 765
Alloc PE / Size 78 / 312.00 MiB
Free PE / Size 687 / 2.68 GiB
VG UUID G7DZt6-wLGz-HqEr-erYp-lDYP-53eM-KBf5NB
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 3 1 0 wz--n- <2.99g 2.68g
先扩容卷组,再扩容逻辑卷
【CentOS 7笔记21】,磁盘挂载
【CentOS 7笔记22】,手动增加Swap空间
【CentOS 7笔记23】, Logical Volume Manager逻辑卷管理
【CentOS 7笔记24】,实验中发生的磁盘小故障
【CentOS 7笔记25】,Vim的使用
修改于171110