LVM創建 pv—>vg—->lv—->快照
創建前準備了四塊1g硬盤分別為:sdb sdc sdd sde,并分別給四塊盤劃分了1G的空間,并指定了分區系統類型為8e(即Linux LVM)
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +999M
Command (m for help): t ##指定類型
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w 保存退出
The partition table has been altered!
然后依次對sdc sdd sde做一樣的操作
[root@localhost ~]# fdisk -l|grep "^/dev/sd"
/dev/sda1 * 1 39 307200 83 Linux
/dev/sda2 39 2358 18631680 83 Linux
/dev/sda3 2358 2611 2031616 82 Linux swap / Solaris
/dev/sdb1 1 128 1028128+ 8e Linux LVM
/dev/sdc1 1 128 1028128+ 8e Linux LVM
/dev/sdd1 1 128 1028128+ 8e Linux LVM
/dev/sde1 1 128 1028128+ 8e Linux LVM
以上紅色顯示的是即將用于創建lvm的分區
First 創建pv
[root@localhost ~]# pvcreate /dev/sd{b,c,d,e}1 創建 PV
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
[root@localhost ~]# pvs 查看pv
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a– 1004.03m 1004.03m
/dev/sdc1 lvm2 a– 1004.03m 1004.03m
/dev/sdd1 lvm2 a– 1004.03m 1004.03m
/dev/sde1 lvm2 a– 1004.03m 1004.03m
[root@localhost ~]# pvdisplay 相對pvs來說顯示的更詳細,以下是/dev/sdb1的顯示內容
"/dev/sdb1" is a new physical volume of "1004.03 MiB"
— NEW Physical volume —
PV Name /dev/sdb1
VG Name
PV Size 1004.03 MiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 8etjmo-mVi0-ncst-Em9d-pMW0-z0Ol-q4fX8v
pvremove /dev/sdb1 即可刪除
pvcreate /dev/sdb1 則可再加進來
Second 創建pv后創建vg
[root@localhost ~]# vgcreate myvg /dev/sd{b,c,d}1 這里我們先加進來3塊盤,另一塊用于演示其他操作
Volume group "myvg" successfully created
如果要修改PE大?。嚎梢允褂?span style="color:#ff0000">-s參數 默認是4m
查看
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 3 0 0 wz–n- 2.93g 2.93g
[root@localhost ~]# vgdisplay 同樣也比vgs顯示的詳細
— Volume group —
VG Name myvg
System ID
Format lvm2
Metadata Areas 3
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 3
Act PV 3
VG Size 2.93 GiB
PE Size 4.00 MiB
Total PE 750
Alloc PE / Size 0 / 0
Free PE / Size 750 / 2.93 GiB
VG UUID hbiddu-b9z4-WTxe-CwYK-WrNu-J0Af-tgLWZR
[root@localhost ~]# vgextend myvg /dev/sde1 添加硬盤到vg 增加磁盤沒什么風險
Volume group "myvg" successfully extended
[root@localhost ~]# vgs 剛才是3個pv 現在4個且容量也增加了
VG #PV #LV #SN Attr VSize VFree
myvg 4 0 0 wz–n- 3.91g 3.91g
下面是移除磁盤,這是我沒要考慮是否磁盤上有數據,如果有移到其他pv,然后移除
[root@localhost ~]# pvmove /dev/sdb1 ##移走數據
No data to move for myvg
[root@localhost ~]# vgreduce myvg /dev/sdb1 ##mypv移除/dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 3 0 0 wz–n- 2.93g 2.93g
Third 創建邏輯卷lv,及擴展大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 4 0 0 wz–n- 3.91g 3.91g
我們查看一共有不到4G的空間,創建的lv大小不能超過上面vg的大小
[root@localhost ~]# lvcreate -L 2G -n mylv myvg ##在myvg上創建一個mylv的邏輯卷大小2G
Logical volume "mylv" created[root@localhost ~]# lvs #查看
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-a—– 2.00g
[root@localhost ~]# lvdisplay 查看
— Logical volume —
LV Path /dev/myvg/mylv
LV Name mylv
VG Name myvg
LV UUID PPPW3e-xAiz-CMNM-RV2o-i8H1-yfIB-9g4KG2
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-06-06 21:24:36 -0700
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 3
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:0
lv的訪問路徑:(此兩者均為符號鏈接,指向的文件為/dev/dm-#)
1./dev/VG_name/LV_name
/dev/myvg/mylv
2./dev/mapper/VG_name-LV_name
/dev/mapper/myvg-mylv
[root@localhost ~]# ll /dev/dm-*
brw-rw—- 1 root disk 253, 0 Jun 6 21:24 /dev/dm-0
[root@localhost ~]# ll /dev/myvg/
lrwxrwxrwx 1 root root 7 Jun 6 21:24 mylv -> ../dm-0
[root@localhost ~]# ll /dev/mapper
lrwxrwxrwx 1 root root 7 Jun 6 21:24 myvg-mylv -> ../dm-0
lv創建好就是一個文件系統,我們就可以使用它了
[root@localhost ~]# mke2fs -t ext4 /dev/myvg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
格式化后創建目錄掛載吧:
[root@localhost ~]# mkdir /mnt/mylv
[root@localhost ~]# mount /dev/myvg/mylv /mnt/mylv
[root@localhost ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
/dev/mapper/myvg-mylv on /mnt/mylv type ext4 (rw)
如果想要長期使用,命令掛載只是暫時的,還要添加到/etc/fstab文件中最后一行增加:
/dev/myvg/mylv /mnt/mylv ext4 defaults 0 0
pv總空間為3.91G,現在只劃給mylv 2G空間,如果不夠用可以擴展mylv
1. lvextend 擴展物理邊界
[root@localhost ~]# lvextend -L 3G /dev/myvg/mylv ###這里表示擴展到3G
Extending logical volume mylv to 3.00 GiB
Logical volume mylv successfully resized
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.9G 14G 18% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/mapper/myvg-mylv 2.0G 67M 1.9G 4% /mnt/mylv
2.resizefs 擴展邏輯邊界
[root@localhost ~]# resize2fs /dev/myvg/mylv ###這里表示擴展至物理邊界大小
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /mnt/mylv; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 786432 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 786432 blocks long.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.9G 14G 18% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/mapper/myvg-mylv 3.0G 67M 2.8G 3% /mnt/mylv
縮減很危險?。。。?!
縮減要離線,首先卸載 umount /mnt/mylv
1.先確定縮減的目錄數據有多少,并確定對應的目標邏輯卷大小中有足夠的空間可容納原來的所有數據
[root@localhost ~]# du -sh /mnt/mylv
20K /mnt/mylv
2.先減少文件系統,并要執行強制檢測
e2fsck -f
[root@localhost ~]# e2fsck -f /dev/myvg/mylv
e2fsck 1.41.12 (17-May-2010)
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/myvg/mylv: 11/196608 files (0.0% non-contiguous), 29500/786432 blocks
3.縮減邊界
resize2fs device
[root@localhost ~]# resize2fs /dev/myvg/mylv 1G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 262144 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 262144 blocks long.
4.縮減物理邊界
lvreduce -L 1G /dev/myvg/mylv
[root@localhost ~]# lvreduce -L 1G /dev/myvg/mylv
WARNING: Reducing active logical volume to 1.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
Reducing logical volume mylv to 1.00 GiB
Logical volume mylv successfully resized
[root@localhost ~]# mount /dev/myvg/mylv /mnt/mylv
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 2.9G 14G 18% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 291M 34M 242M 13% /boot
/dev/mapper/myvg-mylv 1008M 67M 891M 7% /mnt/mylv
快照卷:只能讀,不能寫
注意:快照卷是對某邏輯卷
[root@localhost ~]# mount -o remount,ro /dev/myvg/mylv /mnt/mylv ##先改成只讀
[root@localhost ~]# lvcreate -L 1G -n mylv-snap -p r -s /dev/myvg/mylv ##對mylv做快照為mylv-snap 大小為1G
[root@localhost ~]# mount -o remount,rw /dev/myvg/mylv /mnt/mylv #快照完,立刻改為讀寫或者一個命令行直接執行者三個命令,或者寫腳本
Logical volume "mylv-snap" created
[root@localhost ~]# mount /dev/myvg/mylv-snap /mnt/snap/ 掛載快照
mount: block device /dev/mapper/myvg-mylv–snap is write-protected, mounting read-only
如果不想用了,要刪除怎么辦??
umount /mnt/snap
lvremove /dev/myvg/mylv-snap
另外還有:pvremove vgremove等刪除命令,可以用man 查看
原創文章,作者:comk,如若轉載,請注明出處:http://www.www58058.com/5104