Lvm邏輯卷
接上篇來說,我們知道在linux下處理有RAID0,1 ,4,5,6,,10 ,還有LV(logical volume)可擴展收縮卷,linux上叫LVM 邏輯卷管理器.大家有沒想過這個問題,當們的存儲設備的空間已經全部存儲滿了,我們該咋辦?呵呵,在這裡我們的LVM邏輯卷的優勢就體現的淋漓盡致了,LVM具有幾乎無限擴展的能力.下面我們來簡單分析下LVM 的數據存儲體系結構,
創建邏輯卷的總體上大致可以步驟分為三步
1. 將pp塊設備為轉化成pv物理卷
2. 將pv物理卷添加到vg卷組
3. 將vg卷組轉化為lv邏輯卷
下面我們先來學習一下他的命令用法和格式
Pv pvcreate -v device(/dev/sda5) 將pv塊設備化成物理卷
Pvdisplay /dev/sda5 查看結果
Pvscan 在系統的任何磁碟中搜索已經存在的物理卷
Vg vgcreate vol1 /dev/sda5
-l 指定最大有幾個邏輯卷
-p 指定最大有幾個物理塊設備
-s 設定PE的大小
vgextend vol1(要添加的卷組的名稱) /dev/sda6(pv物理卷)
vgreduce -a 移除空的或者好的物理卷
--removemissing 移除丟失的或者壞的物理卷
Vgs vol1 顯示卷ixnxi
Vgexport vol1 隱藏(不活動時才行)
Vgimport vol1 顯示
Vgchange -l 更改vg設定的屬性指定最大有幾個邏輯卷
-p 更改vg指定最大有幾個物理塊設備
-s 這裡調用-s來改變vg屬性!!!!
Vgscan vol1 掃描卷組
Lv
Lvcreate -L 100M -n lv1 vol1
-m 鏡像卷
-i 條帶卷
-p 指定許可權
-L 指定大小
-s 創建snapshot快照
-n 指定名字
Lvextend -L 100M|100M /dev/vol1/lv1
Lvreduce -L -100M|100M /dev/vol1/lv1
Lvscan
Lvrename 卷組名 就邏輯卷名 新邏輯卷名
下面我們就一個具體的案例來深刻理解下個命令的用法
新建兩個空間均為512M的物理卷,並以之創建卷組myvol1;(格式化?)
新建邏輯卷lvm1,大小為300M,並要求其開機掛載至/share目錄;
新建目錄/share/test,設置其所屬組為oinstall;
擴展邏輯卷lvm1的大小至500M,要求不能損壞其中的文件;
收縮邏輯卷lvm1的大小至200M,要求不能損壞其中的文件;
為此卷創建snapshot,名稱為lvm1snap;
1. 新建兩個512M的物理卷組,並創建卷組myvol
[root@station23 ~]# fdisk /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2308 18434587 8e Linux LVM
/dev/sda3 2309 2373 522112 82 Linux swap / Solaris
/dev/sda4 2374 15665 106767990 5 Extended
/dev/sda5 2374 2436 506016 8e Linux LVM
/dev/sda6 2437 2499 506016 8e Linux LVM
這裡我們分別建立兩個物理卷/dev/sda5 /dev/sda6,這裡的格式必須為linux LVM格式
[root@station23 ~]# partprobe 重新讀取分區信息,使之立即生效
[root@station23 ~]# pvcreate -v /dev/sda5 /dev/sda6 創建物理分區
Set up physical volume for "/dev/sda5" with 1012032 available sectors
Zeroing start of device /dev/sda5
Physical volume "/dev/sda5" successfully created
Set up physical volume for "/dev/sda6" with 1012032 available sectors
Zeroing start of device /dev/sda6
Physical volume "/dev/sda6" successfully created
[root@station23 ~]# pvdisplay 查看物理卷創建情況
"/dev/sda5" is a new physical volume of "494.16 MB"
--- NEW Physical volume ---
PV Name /dev/sda5
VG Name
PV Size 494.16 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 32M1nK-NB3O-D3NM-IaKg-d83f-75XL-2xdhte
"/dev/sda6" is a new physical volume of "494.16 MB"
--- NEW Physical volume ---
PV Name /dev/sda6
VG Name
PV Size 494.16 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3k3i3x-6MAs-cX5j-tXJY-790Y-JDCr-PQoI8c
創建卷組myvol1
[root@station23 ~]# vgcreate myvol1 /dev/sda5 /dev/sda6
Volume group "myvol1" successfully created
[root@station23 ~]# vgdisplay myvol1 查看卷組創建情況
--- Volume group ---
VG Name myvol1
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 984.00 MB
PE Size 4.00 MB
Total PE 246
Alloc PE / Size 0 / 0
Free PE / Size 246 / 984.00 MB
VG UUID BDI2wz-XPuu-hZan-VpIu-H6tg-3zTk-Vhyu2x
創建邏輯卷lvm1 大小為300M
[root@station23 ~]# lvcreate -L 300M -n lvm1 myvol1
Logical volume "lvm1" created
[root@station23 ~]# lvdisplay lvm1 這裡失敗的原因的沒寫全路徑
Volume group "lvm1" not found
[root@station23 ~]# lvdisplay /dev/myvol1/lvm1
--- Logical volume ---
LV Name /dev/myvol1/lvm1
VG Name myvol1
LV UUID 15mVY6-82LS-B39d-663P-Xrlf-p3Ju-cy3Mzp
LV Write Access read/write
LV Status available
# open 0
LV Size 300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
[root@station23 ~]# mkfs -t ext3 /dev/myvol1/lvm1 格式化lvm1為ext3
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@station23 ~]# mkdir -p /share/test 創建/share/test文件
[root@station23 ~]# vim /etc/fstab 設置lvm1 開機自動掛載
/dev/myvol1/lvm1 /share/test ext3 defaults 0 0
~
~
"/etc/fstab" 9L, 656C written 9,47-75 All
新建目錄/share/test,設置其所屬組為oinstall
[root@station23 /]# mkdir /share/test
[root@station23 /]# chown -R :oinstall /share
[root@station23 /]# ls -ld /share/test/
drwxr-xr-x 2 root oinstall 1024 Feb 25 12:39 /share/test/
[root@station23 /]# ls -ld /share
drwxr-xr-x 4 root oinstall 1024 Feb 25 12:39 /share
[root@station23 ~]# mount /dev/myvol1/lvm1 /share 掛載lvm1至/share目錄下
擴展邏輯卷lvm1的大小至500M,要求不能損壞其中的文件;
[root@station23 test]# touch aa 新建aa文件,用於測試是否損壞了文件
[root@station23 test]# lvextend -L 500M /dev/myvol1/lvm1 /擴展lv邏輯卷500M 區分 500M
Extending logical volume lvm1 to 500.00 MB
Logical volume lvm1 successfully resized 成功標誌
[root@station23 test]# resize2fs /dev/myvol1/lvm1 重新定義lv大小,這步一定不能少resize2fs 1.39 (29-May-2006)
Filesystem at /dev/myvol1/lvm1 is mounted on /share; on-line resizing required
Performing an on-line resize of /dev/myvol1/lvm1 to 512000 (1k) blocks.
The filesystem on /dev/myvol1/lvm1 is now 512000 blocks long.
[root@station23 test]# ls aa文件依然存在,擴展成功
aa
收縮邏輯卷lvm1的大小至200M,要求不能損壞其中的文件;
[root@station23 test]# umount /dev/myvol1/lvm1 失敗原因,在掛載目錄
umount: /share: device is busy
umount: /share: device is busy
[root@station23 test]# cd
[root@station23 ~]# umount /dev/myvol1/lvm1 收縮邏輯卷時一定要先卸載
[root@station23 ~]# e2fsck -f /dev/myvol1/lvm1 e2fsck 1.39 (29-May-2006)
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/myvol1/lvm1: 13/127512 files (7.7% non-contiguous), 26640/512000 blocks
[root@station23 ~]#resize2fs /development/myvol1/lvm1 200M
[root@station23 ~]# lvreduce -L 200M /dev/myvol1/lvm1 收縮至200M 區分-200M
WARNING: Reducing active logical volume to 200.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvm1? [y/n]: y
Reducing logical volume lvm1 to 200.00 MB
Logical volume lvm1 successfully resized
[root@station23 ~]# cd /share
[root@station23 share]# ls
test
[root@station23 share]# cd
[root@station23 ~]# mount /dev/myvol1/lvm1 /share
[root@station23 ~]# cd /share/
[root@station23 share]# ls
lost found test
[root@station23 share]# cd test/
[root@station23 test]# ls 查看是否損壞文件
aa
[root@station23 test]#
為此卷創建snapshot,名稱為lvm1snap;
[root@station23 test]# lvcreate -L 100M -s -p r -n lvm1snapshot /dev/myvol1/lvm1
Logical volume "lvm1snapshot" created
Ok
[火星人 ] linux 下lvm邏輯卷的鑄造已經有656次圍觀