使用邏輯卷管理器管理靈活存儲
七.使用邏輯卷管理器管理靈活存儲
硬盤或者分區-->pv-->vg-->lvm
1.LVM 定義
• 物理分區或磁盤是 LVM 的第一構建塊。這些可以是分區、完整磁盤、 RAID 集或 SAN 磁盤
• 物理卷是 LVM 所使用的基礎 “ 物理 ” 存儲。這通常是塊設備 ,例如分區或完整磁盤。設備必須初始化爲 LVM 物理卷 , 才能與 LVM 結合使用
• 卷組是存儲池 , 由一個或多個物理卷組成
• 物理區塊是物理卷中存儲的小型數據區塊 , 用作 LVM 存儲的後端
• 邏輯區塊映射到物理區塊 , 構成 LVM 存儲的前端。默認情況下 , 每個邏輯區塊映射到一個物理區塊。啓用某些選項將更改此映射。例如 , 鏡像會導致每個邏輯區塊映射到兩個物理區塊
• 邏輯卷是邏輯區塊組。邏輯卷可以像硬盤驅動器分區一樣使用
2.使用邏輯卷的意義
• 邏輯卷和邏輯卷管理有助於更加輕鬆地管理磁盤空間。如果文件系統需要更多的空間 ,可以將其卷組的可用空間分配給邏輯卷 , 並且可以調整文件系統的大小。如果磁盤開始出現錯誤 , 可以通過卷組將替換磁盤註冊爲物理卷 , 並且邏輯卷的範圍可遷移到新磁盤
3.使用命令行工具實施 LVM 存儲
• 準備物理卷
– disk 用於創建與 LVM 結合使用的新分區。在要與 LVM 結合使用的分區上 , 始終將“ 類型 ” 設置爲 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用於初始化分區 ( 或其他物理設備 ), 使其作爲物理卷與 LVM 結合使用。直接在物理卷中創建用於存儲 LVM 配置數據的表頭
• 創建卷組
– vgcreate vgname /dev/vdaN 將創建名爲 vgname 且由物理卷 /dev/vdaN 組成的卷組。您可以在創建時指定其他物理卷 ( 以空格隔開 ), 也可以隨後使用 vgextend 添加新物理卷
• 創建和使用新邏輯卷
– lvcreate -n lvname -L 2G vgname 從 vgname 上可用物理區塊創建名爲 lvname 、容量爲 2GB 的新邏輯卷
– mkfs -t ext4 /dev/vgname/lvname 將在新邏輯捲上創建 ext4 文件系統
– mkdir /data 建立所需目錄作爲掛載點
– 向 /etc/fstab 文件中添加一下條目:
/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 運行 mount -a 可在 /etc/fstab 中掛載所有文件系統 , 包括您剛剛添加的條目
4.查看 LVM 狀態信息
• pvdisplay /dev/vdaN 將顯示有關特定物理卷的信息
• vgdisplay vgname 將顯示有關特定卷組的信息
• lvdisplay /dev/vgname/lvname 將顯示有關特定邏輯卷的信息
5.擴展邏輯卷和 xfs 文件系統
• 驗證已掛載文件系統 /data 的當前大小
– df -h /data
• 驗證 “ 可用物理區塊 ” 是否夠用
– vgdisplay vgname
• 使用部分或全部可用區塊擴展邏輯卷
– lvextend -l 128 /dev/vgname/lvname
• 擴展在 /data 上掛載的關聯文件系統
– xfs_growfs
/dev/vgname/lvname
• 驗證已掛載文件系統 /data 的新的大小
– df -h /data
6.創建快照以便於數據備份
• 快照邏輯卷是 LVM 存儲的另一項靈活功能。LVM 快照是臨時保留所更改的邏輯卷的原始數據的邏輯卷。快照提供原始卷的靜態視圖 , 從而能夠以一致狀態備份其數據
• 快照卷大小隻需足以存儲在它存在期間更改的數據即可
• 如果數據更改量大於快照存儲容量 , 則快照將自動變爲不可用。 ( 原始卷原封不動 , 仍然需要從卷組中手動解除掛載和刪除不可用的快照。 )
7.創建和使用快照進行備份
• 創建 /dev/vgname/lvname 的名爲 snaplvname 、大小爲 20M 的新快照卷
– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
• 如果備份軟件要求 , 請掛載該快照 , 並使備份程序指向新掛載點
– mkdir /snapmount
– mount -o ro /dev/vgname/snaplv /snapmount
• 驗證快照邏輯卷的狀態
– lvs /dev/vgname/snaplv
• 不再使用快照時 , 請解除掛載並刪除它
– umount /snapmount
– lvremove /dev/vgname/snaplv
1.LVM的建立
命令:
73 mkdir /weixindata
74 fdisk /dev/vdb
75 fdisk -l
76 partprobe
77 pvcreate /dev/vdb1
78 fdisk -l
80 df ##注意:一定要把上次實驗做的停掉
83 mdadm -D /dev/md0
84 mdadm -S /dev/md0
85 mdadm -D /dev/md0
86 pvcreate /dev/vdb1
87 vgcreate vg0 /dev/vdb1
88 lvcreate -L 300M -n lv0 vg0
89 mkfs.xfs /dev/vg0/lv0
90 mount /dev/vg0/lv0 /weixindata/
監控命令:
[root@localhost ~]# watch -n 1 'echo =======pvmessage========; pvs;echo ==========vgmessages==============;vgs;echo ========lvmmessages===========;lvs;echo ==================;df -h /weixindata'
-------------------------------------------------------------------------------------
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 8e Linux LVM
/dev/vdb2 2099200 4196351 1048576 8e Linux LVM
/dev/vdb3 4196352 6293503 1048576 8e Linux LVM
Disk /dev/md0: 523 MB, 523960320 bytes, 1023360 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 ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
Can't open /dev/vdb1 exclusively. Mounted filesystem?
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809408 6664492 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17076 925584 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@localhost ~]# mdadm -I
mdadm: --incremental requires a device.
[root@localhost ~]# mdadm -D
mdadm: No devices given.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 02:44:00 2017
Raid Level : raid1
Array Size : 511680 (499.77 MiB 523.96 MB)
Used Dev Size : 511680 (499.77 MiB 523.96 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Apr 22 03:38:38 2017
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost:0 (local to host localhost)
UUID : af9e3fe4:dfed6efc:02461f8e:af60c0c1
Events : 39
Number Major Minor RaidDevice State
0 253 17 0 active sync /dev/vdb1
2 253 19 1 active sync /dev/vdb3
3 253 18 - spare /dev/vdb2
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
WARNING: linux_raid_member signature detected on /dev/vdb1 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb1.
WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y
Wiping xfs signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created
[root@localhost ~]# vgcreate vg0 /dev/vdb1
Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0
Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, 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@localhost ~]# mount /dev/vg0/lv0 /weixindata/
------------------------------------------------------------------------------------
2.拉伸與縮減
拉伸
1 lvextend -L 900M /dev/vg0/lv0 ##-L是拉伸到多大
2 xfs_growfs /dev/vg0/lv0 ##使文件也增大,注意:文件不能格式化,否則內容會丟掉
3 lvextend -L 1500M /dev/vg0/lv0
4 pvcreate /dev/vdb2 ##再加一塊硬盤
5 vgextend vg0 /dev/vdb2
6 lvextend -L 1500M /dev/vg0/lv0
7 xfs_growfs /dev/vg0/lv0
-------------------------------------------------------------------------------------
[root@localhost ~]# lvextend -L 900M /dev/vg0/lv0
Extending logical volume lv0 to 900.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 76800 to 230400
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Insufficient free space: 150 extents needed, but only 30 available
[root@localhost ~]# pvcreate /dev/vdb2
Physical volume /dev/vdb2 not found
WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb2.
Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb2
Volume group "vg0" successfully extended
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=12, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=230400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 230400 to 384000
最後監控命令顯示:
=======pvmessage========
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 0
/dev/vdb2 vg0 lvm2 a-- 1020.00m 540.00m
==========vgmessages==============
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 1.99g 540.00m
========lvmmessages===========
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 1.46g
==================
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 1.5G 16M 1.5G 2% /weixindata
-------------------------------------------------------------------------------------
縮減:不能用xfs格式的文件,所以先取消掛載,把文件換一種格式
1 umount /weixindata/
2 mkfs.ext4 /dev/vg0/lv0
3 mount /dev/vg0/lv0 /weixindata/
4 df
1 umount /weixindata/ ##先把文件取消掛載
2 e2fsck -f /dev/vg0/lv0 ##做這一步是爲了下一步如果縮的過小有提示
3 resize2fs /dev/vg0/lv0 20M ##過小,會有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也過小
6 mount /dev/vg0/lv0 /weixindata/ ##顯示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809384 6664516 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17072 925588 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 1479088 4512 1381392 1% /weixindata
---------------------------------------------------------------------------------
########然後正式進行##########
1 umount /weixindata/ ##先把文件取消掛載
2 e2fsck -f /dev/vg0/lv0 ##做這一步是爲了下一步如果縮的過小有提示
3 resize2fs /dev/vg0/lv0 20M ##過小,會有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也過小
6 mount /dev/vg0/lv0 /weixindata/ ##顯示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
----------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# e2fsck -f /dev/vg0/lv0
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/vg0/lv0: 11/96000 files (9.1% non-contiguous), 15356/384000 blocks
[root@localhost ~]# resize2fs /dev/vg0/lv0 20M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (17124)
[root@localhost ~]# resize2fs /dev/vg0/lv0 300M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 76800 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 76800 blocks long.
[root@localhost ~]# resize2fs /dev/vg0/lv0 10M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (16509)
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# lvreduce -L 300 /dev/vg0/lv0
WARNING: Reducing active and open logical volume to 300.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 300.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 20.0%
/dev/vdb1: Moved: 100.0%
[root@localhost ~]# vgreduce vg0 /dev/vdb1
Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1
Labels on physical volume "/dev/vdb1" successfully wiped
----------------------------------------------------------------------------------
########鏡像######
12 touch /weixindata/file{1..5} ##實際上是建在了/dev/vg0/lv0裏面了,通過/weixindata 來查看
13 ls /weixindata/
14 umount /weixindata/
15 cd /weixindata/
16 ls
17 cd
18 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##鏡像給50M
19 mount /dev/vg0/lv0backup /weixindata/ ##查看關於監控命令鏡像的大小,應該不是50M了,和源一致
20 cd /weixindata/
21 ls
22 rm -fr /weixindata/*
23 ls
24 cd
25 umount /weixindata/
26 lvremove /dev/vg0/lv0backup
27 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
28 mount /dev/vg0/lv0backup /weixindata/
29 cd /weixindata/
30 ls
-------------------------------------------------------------------------------
[root@localhost ~]# touch /weixindata/file{1..5}
[root@localhost ~]# ls /weixindata/
file1 file2 file3 file4 file5 lost+found
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
[root@localhost weixindata]# rm -fr /weixindata/*
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
---------------------------------------------------------------------------------
設備都不用了,全都卸載
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@localhost ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/vdb2
Labels on physical volume "/dev/vdb2" successfully wiped
硬盤或者分區-->pv-->vg-->lvm
1.LVM 定義
• 物理分區或磁盤是 LVM 的第一構建塊。這些可以是分區、完整磁盤、 RAID 集或 SAN 磁盤
• 物理卷是 LVM 所使用的基礎 “ 物理 ” 存儲。這通常是塊設備 ,例如分區或完整磁盤。設備必須初始化爲 LVM 物理卷 , 才能與 LVM 結合使用
• 卷組是存儲池 , 由一個或多個物理卷組成
• 物理區塊是物理卷中存儲的小型數據區塊 , 用作 LVM 存儲的後端
• 邏輯區塊映射到物理區塊 , 構成 LVM 存儲的前端。默認情況下 , 每個邏輯區塊映射到一個物理區塊。啓用某些選項將更改此映射。例如 , 鏡像會導致每個邏輯區塊映射到兩個物理區塊
• 邏輯卷是邏輯區塊組。邏輯卷可以像硬盤驅動器分區一樣使用
2.使用邏輯卷的意義
• 邏輯卷和邏輯卷管理有助於更加輕鬆地管理磁盤空間。如果文件系統需要更多的空間 ,可以將其卷組的可用空間分配給邏輯卷 , 並且可以調整文件系統的大小。如果磁盤開始出現錯誤 , 可以通過卷組將替換磁盤註冊爲物理卷 , 並且邏輯卷的範圍可遷移到新磁盤
3.使用命令行工具實施 LVM 存儲
• 準備物理卷
– disk 用於創建與 LVM 結合使用的新分區。在要與 LVM 結合使用的分區上 , 始終將“ 類型 ” 設置爲 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用於初始化分區 ( 或其他物理設備 ), 使其作爲物理卷與 LVM 結合使用。直接在物理卷中創建用於存儲 LVM 配置數據的表頭
• 創建卷組
– vgcreate vgname /dev/vdaN 將創建名爲 vgname 且由物理卷 /dev/vdaN 組成的卷組。您可以在創建時指定其他物理卷 ( 以空格隔開 ), 也可以隨後使用 vgextend 添加新物理卷
• 創建和使用新邏輯卷
– lvcreate -n lvname -L 2G vgname 從 vgname 上可用物理區塊創建名爲 lvname 、容量爲 2GB 的新邏輯卷
– mkfs -t ext4 /dev/vgname/lvname 將在新邏輯捲上創建 ext4 文件系統
– mkdir /data 建立所需目錄作爲掛載點
– 向 /etc/fstab 文件中添加一下條目:
/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 運行 mount -a 可在 /etc/fstab 中掛載所有文件系統 , 包括您剛剛添加的條目
4.查看 LVM 狀態信息
• pvdisplay /dev/vdaN 將顯示有關特定物理卷的信息
• vgdisplay vgname 將顯示有關特定卷組的信息
• lvdisplay /dev/vgname/lvname 將顯示有關特定邏輯卷的信息
5.擴展邏輯卷和 xfs 文件系統
• 驗證已掛載文件系統 /data 的當前大小
– df -h /data
• 驗證 “ 可用物理區塊 ” 是否夠用
– vgdisplay vgname
• 使用部分或全部可用區塊擴展邏輯卷
– lvextend -l 128 /dev/vgname/lvname
• 擴展在 /data 上掛載的關聯文件系統
– xfs_growfs
/dev/vgname/lvname
• 驗證已掛載文件系統 /data 的新的大小
– df -h /data
6.創建快照以便於數據備份
• 快照邏輯卷是 LVM 存儲的另一項靈活功能。LVM 快照是臨時保留所更改的邏輯卷的原始數據的邏輯卷。快照提供原始卷的靜態視圖 , 從而能夠以一致狀態備份其數據
• 快照卷大小隻需足以存儲在它存在期間更改的數據即可
• 如果數據更改量大於快照存儲容量 , 則快照將自動變爲不可用。 ( 原始卷原封不動 , 仍然需要從卷組中手動解除掛載和刪除不可用的快照。 )
7.創建和使用快照進行備份
• 創建 /dev/vgname/lvname 的名爲 snaplvname 、大小爲 20M 的新快照卷
– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
• 如果備份軟件要求 , 請掛載該快照 , 並使備份程序指向新掛載點
– mkdir /snapmount
– mount -o ro /dev/vgname/snaplv /snapmount
• 驗證快照邏輯卷的狀態
– lvs /dev/vgname/snaplv
• 不再使用快照時 , 請解除掛載並刪除它
– umount /snapmount
– lvremove /dev/vgname/snaplv
1.LVM的建立
命令:
73 mkdir /weixindata
74 fdisk /dev/vdb
75 fdisk -l
76 partprobe
77 pvcreate /dev/vdb1
78 fdisk -l
80 df ##注意:一定要把上次實驗做的停掉
83 mdadm -D /dev/md0
84 mdadm -S /dev/md0
85 mdadm -D /dev/md0
86 pvcreate /dev/vdb1
87 vgcreate vg0 /dev/vdb1
88 lvcreate -L 300M -n lv0 vg0
89 mkfs.xfs /dev/vg0/lv0
90 mount /dev/vg0/lv0 /weixindata/
監控命令:
[root@localhost ~]# watch -n 1 'echo =======pvmessage========; pvs;echo ==========vgmessages==============;vgs;echo ========lvmmessages===========;lvs;echo ==================;df -h /weixindata'
-------------------------------------------------------------------------------------
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 8e Linux LVM
/dev/vdb2 2099200 4196351 1048576 8e Linux LVM
/dev/vdb3 4196352 6293503 1048576 8e Linux LVM
Disk /dev/md0: 523 MB, 523960320 bytes, 1023360 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 ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
Can't open /dev/vdb1 exclusively. Mounted filesystem?
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809408 6664492 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17076 925584 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@localhost ~]# mdadm -I
mdadm: --incremental requires a device.
[root@localhost ~]# mdadm -D
mdadm: No devices given.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 02:44:00 2017
Raid Level : raid1
Array Size : 511680 (499.77 MiB 523.96 MB)
Used Dev Size : 511680 (499.77 MiB 523.96 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Apr 22 03:38:38 2017
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost:0 (local to host localhost)
UUID : af9e3fe4:dfed6efc:02461f8e:af60c0c1
Events : 39
Number Major Minor RaidDevice State
0 253 17 0 active sync /dev/vdb1
2 253 19 1 active sync /dev/vdb3
3 253 18 - spare /dev/vdb2
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
WARNING: linux_raid_member signature detected on /dev/vdb1 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb1.
WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y
Wiping xfs signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created
[root@localhost ~]# vgcreate vg0 /dev/vdb1
Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0
Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, 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@localhost ~]# mount /dev/vg0/lv0 /weixindata/
------------------------------------------------------------------------------------
2.拉伸與縮減
拉伸
1 lvextend -L 900M /dev/vg0/lv0 ##-L是拉伸到多大
2 xfs_growfs /dev/vg0/lv0 ##使文件也增大,注意:文件不能格式化,否則內容會丟掉
3 lvextend -L 1500M /dev/vg0/lv0
4 pvcreate /dev/vdb2 ##再加一塊硬盤
5 vgextend vg0 /dev/vdb2
6 lvextend -L 1500M /dev/vg0/lv0
7 xfs_growfs /dev/vg0/lv0
-------------------------------------------------------------------------------------
[root@localhost ~]# lvextend -L 900M /dev/vg0/lv0
Extending logical volume lv0 to 900.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 76800 to 230400
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Insufficient free space: 150 extents needed, but only 30 available
[root@localhost ~]# pvcreate /dev/vdb2
Physical volume /dev/vdb2 not found
WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb2.
Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb2
Volume group "vg0" successfully extended
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=12, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=230400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 230400 to 384000
最後監控命令顯示:
=======pvmessage========
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 0
/dev/vdb2 vg0 lvm2 a-- 1020.00m 540.00m
==========vgmessages==============
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 1.99g 540.00m
========lvmmessages===========
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 1.46g
==================
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 1.5G 16M 1.5G 2% /weixindata
-------------------------------------------------------------------------------------
縮減:不能用xfs格式的文件,所以先取消掛載,把文件換一種格式
1 umount /weixindata/
2 mkfs.ext4 /dev/vg0/lv0
3 mount /dev/vg0/lv0 /weixindata/
4 df
1 umount /weixindata/ ##先把文件取消掛載
2 e2fsck -f /dev/vg0/lv0 ##做這一步是爲了下一步如果縮的過小有提示
3 resize2fs /dev/vg0/lv0 20M ##過小,會有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也過小
6 mount /dev/vg0/lv0 /weixindata/ ##顯示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809384 6664516 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17072 925588 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 1479088 4512 1381392 1% /weixindata
---------------------------------------------------------------------------------
########然後正式進行##########
1 umount /weixindata/ ##先把文件取消掛載
2 e2fsck -f /dev/vg0/lv0 ##做這一步是爲了下一步如果縮的過小有提示
3 resize2fs /dev/vg0/lv0 20M ##過小,會有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也過小
6 mount /dev/vg0/lv0 /weixindata/ ##顯示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
----------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# e2fsck -f /dev/vg0/lv0
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/vg0/lv0: 11/96000 files (9.1% non-contiguous), 15356/384000 blocks
[root@localhost ~]# resize2fs /dev/vg0/lv0 20M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (17124)
[root@localhost ~]# resize2fs /dev/vg0/lv0 300M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 76800 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 76800 blocks long.
[root@localhost ~]# resize2fs /dev/vg0/lv0 10M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (16509)
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# lvreduce -L 300 /dev/vg0/lv0
WARNING: Reducing active and open logical volume to 300.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 300.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 20.0%
/dev/vdb1: Moved: 100.0%
[root@localhost ~]# vgreduce vg0 /dev/vdb1
Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1
Labels on physical volume "/dev/vdb1" successfully wiped
----------------------------------------------------------------------------------
########鏡像######
12 touch /weixindata/file{1..5} ##實際上是建在了/dev/vg0/lv0裏面了,通過/weixindata 來查看
13 ls /weixindata/
14 umount /weixindata/
15 cd /weixindata/
16 ls
17 cd
18 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##鏡像給50M
19 mount /dev/vg0/lv0backup /weixindata/ ##查看關於監控命令鏡像的大小,應該不是50M了,和源一致
20 cd /weixindata/
21 ls
22 rm -fr /weixindata/*
23 ls
24 cd
25 umount /weixindata/
26 lvremove /dev/vg0/lv0backup
27 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
28 mount /dev/vg0/lv0backup /weixindata/
29 cd /weixindata/
30 ls
-------------------------------------------------------------------------------
[root@localhost ~]# touch /weixindata/file{1..5}
[root@localhost ~]# ls /weixindata/
file1 file2 file3 file4 file5 lost+found
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
[root@localhost weixindata]# rm -fr /weixindata/*
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
---------------------------------------------------------------------------------
設備都不用了,全都卸載
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@localhost ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/vdb2
Labels on physical volume "/dev/vdb2" successfully wiped
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.