Linux怎么創(chuàng)建LVM
LVM是Linux下對磁盤分區(qū)管理的一種機制,相信不少人想要知道Linux如何創(chuàng)建LVM的方法,因此學(xué)習(xí)啦小編將針對LVM的創(chuàng)建和使用做個詳細介紹,一起來學(xué)習(xí)下吧。
Linux怎么創(chuàng)建LVM
PV: 實體分割區(qū)(Partition)/dev/had...
VG: 虛擬硬盤 /dev/vg_name
LV: 虛擬分割區(qū) /dev/vg_name/lv_name
LVM創(chuàng)建過程:
如有三個硬盤hda2(3G)/hdb2(3G)/hdc2(3G)/hdd2(3G)+hda1(100M boot分區(qū))
1、創(chuàng)建分區(qū):
fdisk /dev/hda(..hdb..hdc..hdd) -----p---n--t--8e---p--w--- reboot
(分出hda2/hdb2/hdc2/hdd2各3G的分區(qū),分區(qū)格式為8e(lvm分區(qū))
2、創(chuàng)建物理卷(PV):
pvcreate [-v] /dev/hda2 /dev/hdb2 /dev/hdc2 /dev/hdd2
***創(chuàng)建物理卷(PV)之前可以通過pvscan 查看是否有物理卷及其信息,如pvscan查看到現(xiàn)有PV(如/dev/hdb1、/dev/hdc1)屬于VG (如VG0),則可以通過
pvdisplay /dev/hdb1查看現(xiàn)有LVM的情況。
****-v顯示創(chuàng)建的全部過程,可以省略
3、創(chuàng)建卷組(VG):
vgcreate [-v] [-s 8M]vg01 /dev/hda2 /dev/hdb2 /dev/hdc2 /dev/hdd2
***創(chuàng)建卷組((VG)之前可以通過vgdisplay查看現(xiàn)有卷組信息;
*** -s 創(chuàng)建的VG的PE大小(如8M),默認省略不寫為4M,必須是4的整數(shù)倍;
***VG創(chuàng)建好后,自動就Active起來,若沒有自動Active則可以通過 vgchange -a y vg01激活 VG;也可以通過vgchange -a n vg01 關(guān)閉Actice 的VG為Deactive;
***只有對Deactive 的VG才能進行更改、刪除;VG的重命名不需要Deactive,如 vgrename old_vg_name new_vg_name;
***vgremove 刪除現(xiàn)有VG :vgremove vg_name;必須是Deactive VG.
***若在創(chuàng)建了LVM后發(fā)現(xiàn)硬盤空間不夠,則可以創(chuàng)建一個LVM分區(qū),通過pvcreate激活此分區(qū),再通過vgextend加入到現(xiàn)有VG中以擴充空間。
pvcreate /dev/hde2 ; vgextend -v vg01 /dev/hde2 將hde2加入到現(xiàn)有vg01中以擴充空間。
***若要刪除VG中的PV,必須先確認此PV沒有被VG所使用:如/dev/hdd2,先查看pvdisplay /dev/hdd2 中的PV Status,若為Not Availiable則可以刪除;
vgreduce -v vg01 /dev/hdd2
4、創(chuàng)建邏輯卷(LVM):
命令lvcreate的常用方法:
lvcreate [options] -n 邏輯卷名 卷組名
其中的常用可選項有:
"-i Stripes :采用交錯(striped)方式創(chuàng)建LV,其中Stripes指卷組中PV的數(shù)量。
"-I Stripe_size :采用交錯方式時采用的塊大小(單位為KB),Stripe_size必須為2的指數(shù):2N ,N=2,3...9。
"-l LEs :指定LV的邏輯塊數(shù)。
"-L size :指定LV的大小,其后可以用K、M、G表示KB、MB、GB。
"-s :創(chuàng)建一已存在LV的snapshot卷。
"-n name :為LV指定名稱。
創(chuàng)建普通LV:
lvcreate -L 5G -n lv01 vg01 創(chuàng)建一個名為lv01的5G 虛擬分區(qū)在虛擬硬盤vg01上 /dev/vg01/lv01
lvcreate -i 4 -I 8 -L 4G -n lv02 vg01 [-i 是VG中組成PV的分區(qū)個數(shù),-I 塊大小,-L LV的大小]
創(chuàng)建快照LV:
lvcreate -s -i 4 -I 16 -L 2G -n lv03_snapshot vg01
5、創(chuàng)建文件系統(tǒng):
mke2fs -j /dev/vg01/lv01 (mkfs.ext3 /dev/vg01/lv02; mkfs.ext3 /dev/vg01/lv_snapshot)
6、掛載:
mkdir /mnt/lv01 ;
mount -t ext3 /dev/vg01/lv01 /mnt/lv01;
7、增、減LV大?。?/p>
umount /lv01;
e2fsadm -L+100M(-100M) /dev/vg01/lv01
****
1) fdisk /dev/hd?--8e (/dev/hda2;/dev/hdb2;/dev/hdc2/;dev/hdd2)
2) pvcreate /dev/hda2 /dev/hdb2 /dev/hdc2
3)vgcreate vg01 /dev/hd2 /dev/hdb2 /dev/hdc2
4)lvcreate [-s] [-i pv_pation_count] [-I n*2k] -L 分區(qū)大小 [-n lv_name] vg01
5)mke2fs [-j] /vg01/lv_name
6) mkdir /mnt/mnt_point; mount -t ext3 /dev/vg01/lv_name /mnt/mnt_point;
增加硬盤已擴充分區(qū)容量:
1) pvcreate /dev/hdd2;
2) vgextend vg01 /dev/hdd2;
3)lvextend -L+100M /dev/vg01/lv_name; (在線擴充分區(qū)大小) lvreduce -L -100M /dev/vg01/lv_name (在線擴充分區(qū)大小)
若VG中有容量未分配可以通過以下方法增加(或減少)分區(qū)容量:
1) umount /mnt/mnt_point;
2) e2fsadm -L+100M /dev/vg01/lv_name
**以上擴充必須是LV中最后一個LV(如/dev/vg01/lv01;/dev/vg01/lv02; /dev/vg01/lv03)
只能正常、正確擴充最后一個LV :lv03;若擴充lv01、lv02可能會有問題發(fā)生。
創(chuàng)建實例:
磁盤-》分區(qū)-》ID修改8e-》保存。
我用來一個磁盤通過分區(qū)來做的。還可以每個磁盤分一個區(qū)來做。
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 8e Linux LVM
/dev/sdb2 1307 2612 10490445 8e Linux LVM
/dev/sdb3 2613 3918 10490445 8e Linux LVM
3)創(chuàng)建物理卷:通過pvcreate命令。
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
[root@station106 ~]# pvs(查看創(chuàng)建的物理卷)。
PV VG Fmt Attr PSize PFree
/dev/sda2 vg0 lvm2 a-- 59.99g 7.99g
/dev/sdb1 lvm2 a-- 10.00g 10.00g
/dev/sdb2 lvm2 a-- 10.00g 10.00g
/dev/sdb3 lvm2 a-- 10.00g 10.00g
pvdisplay 查看更加詳細的內(nèi)容。
[root@station106 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name myvg
PV Size 10.00 GiB / not usable 4.54 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2560
Free PE 2560
Allocated PE 0
PV UUID XP8QfA-WQDd-1v9p-QKxk-AztZ-Nr9e-QbN6Gu
--- Physical volume ---
PV Name /dev/sdb2
VG Name myvg
PV Size 10.00 GiB / not usable 4.58 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2560
Free PE 2560
Allocated PE 0
PV UUID f8Dtdd-fV9e-1yB7-1B8P-21mU-CU2f-fQDAxe
--- Physical volume ---
PV Name /dev/sdb3
VG Name myvg
PV Size 10.00 GiB / not usable 4.58 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2560
Free PE 2560
Allocated PE 0
PV UUID rKNL0x-WXq2-gHYD-T27r-Gf05-a4y3-f4zqzt
4)創(chuàng)建邏輯卷:通過vgcreate。
[root@station106 ~]# vgcreate myvg /dev/sdb{1,2,3}
Volume group “myvg” successfully created
[root@station106 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 3 0 0 wz--n- 30.00g 30.00g
5)創(chuàng)建邏輯卷,lvcreate。
[root@station106 ~]# lvcreate -L 10G -n test myvg
Logical volume “test” created
-L:空間大小。
-n:邏輯卷名稱。
[root@station106 ~]# lvdisplay /dev/myvg/test
--- Logical volume ---
LV Path /dev/myvg/test
LV Name test
VG Name myvg
LV UUID wY1YUF-f0o6-jzu1-mtTL-64p0-qvfC-3QfF8y
LV Write Access read/write
LV Creation host, time station106.magelinux.com, 2014-02-10 11:18:43 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
6)掛載使用創(chuàng)建好的邏輯卷。
mke2fs -t ext4 /dev/myvg/test 格式化。
mount /dev/myvg/test /mnt/掛載使用。
7)假如有一天邏輯卷不夠用了。怎么從卷組擴展呢?如下分析。
邏輯卷擴展的大致步驟:
1,先確定擴展的大小,并確保所屬的卷組有足夠的剩余空間。
我現(xiàn)在要擴展5G,本身是10G的大小。命令如下:
[root@station106 ~]# lvextend -L +5G /dev/myvg/test
Extending logical volume test to 15.00 GiB
Logical volume test successfully resized
2,擴展物理邊界。物理邊界指的是本身的物理邊緣大小。
[root@station106 ~]# lvdisplay /dev/myvg/test
--- Logical volume ---
LV Path /dev/myvg/test
LV Name test
VG Name myvg
LV UUID wY1YUF-f0o6-jzu1-mtTL-64p0-qvfC-3QfF8y
LV Write Access read/write
LV Creation host, time station106.magelinux.com, 2014-02-10 11:18:43 +0800
LV Status available
# open 1
LV Size 15.00 GiB
Current LE 3840
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
當(dāng)擴展完物理邊界后你會發(fā)現(xiàn),掛載中的邏輯卷還是本身的大小。
[root@station106 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-root
ext4 20G 387M 19G 3% /
tmpfs tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1 ext4 194M 29M 156M 16% /boot
/dev/mapper/vg0-usr
ext4 9.9G 1.9G 7.6G 20% /usr
/dev/mapper/vg0-var
ext4 20G 288M 19G 2% /var
/dev/mapper/myvg-test
ext4 9.9G 151M 9.2G 2% /mnt
擴展邏輯邊界,邏輯邊界指的是掛載后,在使用中的邏輯卷也直接識別了。
[root@station106 ~]# resize2fs /dev/myvg/test
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/test is mounted on /mnt; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/test to 3932160 (4k) blocks.
The filesystem on /dev/myvg/test is now 3932160 blocks long.
[root@station106 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-root
ext4 20G 387M 19G 3% /
tmpfs tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1 ext4 194M 29M 156M 16% /boot
/dev/mapper/vg0-usr
ext4 9.9G 1.9G 7.6G 20% /usr
/dev/mapper/vg0-var
ext4 20G 288M 19G 2% /var
/dev/mapper/myvg-test
ext4 15G 153M 14G 2% /mnt
上述就是擴展邏輯卷部分。
實例演示:縮小邏輯卷。首先為了測試我去原先掛載的錄下創(chuàng)建一些文件,測試一下縮小后會不會導(dǎo)致文件消失。
縮小邏輯卷的步驟如下:
1)先卸載之前的掛載,并執(zhí)行強制檢測。
[root@station106 ~]# umount /mnt/
[root@station106 ~]# e2fsck -f /dev/myvg/test
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/test: 13/983040 files (0.0% non-contiguous), 100864/3932160 blocks
2)縮減邏輯邊界。
[root@station106 ~]# resize2fs /dev/myvg/test 10G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/test to 2621440 (4k) blocks.
The filesystem on /dev/myvg/test is now 2621440 blocks long.
3)縮減物理邊界。
[root@station106 ~]# lvreduce -L 10G /dev/myvg/test
WARNING: Reducing active logical volume to 10.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce test? [y/n]: y
Reducing logical volume test to 10.00 GiB
Logical volume test successfully resized
縮減后查看:
[root@station106 ~]# lvdisplay /dev/myvg/test
--- Logical volume ---
LV Path /dev/myvg/test
LV Name test
VG Name myvg
LV UUID wY1YUF-f0o6-jzu1-mtTL-64p0-qvfC-3QfF8y
LV Write Access read/write
LV Creation host, time station106.magelinux.com, 2014-02-10 11:18:43 +0800
LV Status available
# open 0
LV Size 10.00 GiB-》這里又變成了10G。
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
掛載繼續(xù)使用并且查看文件是否存在。
[root@station106 ~]# mount /dev/myvg/test /mnt/
[root@station106 ~]# cd /mnt/
[root@station106 mnt]# ls
accp benet lost+found--》查看還是存在。未丟失。
[root@station106 mnt]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-root
ext4 20G 387M 19G 3% /
tmpfs tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1 ext4 194M 29M 156M 16% /boot
/dev/mapper/vg0-usr
ext4 9.9G 1.9G 7.6G 20% /usr
/dev/mapper/vg0-var
ext4 20G 288M 19G 2% /var
/dev/mapper/myvg-test
ext4 9.9G 151M 9.2G 2% /mnt
假設(shè)VG卷組有一天,被邏輯卷用完了,怎么繼續(xù)擴展卷組?
1)創(chuàng)建一個物理卷。
[root@station106 mnt]# pvcreate /dev/sdb5
Physical volume “/dev/sdb5” successfully created
2)把新的物理機加入到卷組中。
[root@station106 mnt]# vgextend myvg /dev/sdb5
Volume group “myvg” successfully extended
查看增加到的卷組。
[root@station106 mnt]# vgextend myvg /dev/sdb5
Volume group “myvg” successfully extended
[root@station106 mnt]# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 4
Act PV 4
VG Size 40.00 GiB--》從30G到40G了。
PE Size 4.00 MiB
Total PE 10240
Alloc PE / Size 2560 / 10.00 GiB
Free PE / Size 7680 / 30.00 GiB
VG UUID KyFWJg-BU15-KrOA-uef4-Cckf-eoTz-oM38nu
有擴展卷組,就必須有縮減??s減過程如下。
[root@station106 mnt]# vgreduce myvg /dev/sdb5
Removed “/dev/sdb5” from volume group “myvg”
[root@station106 mnt]# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 6
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 30.00 GiB
PE Size 4.00 MiB
Total PE 7680
Alloc PE / Size 2560 / 10.00 GiB
Free PE / Size 5120 / 20.00 GiB
VG UUID KyFWJg-BU15-KrOA-uef4
-Cckf-eoTz-oM38nu
LVM做快照。
快照是一種邏輯卷,通常為只讀。通俗化說:“快照大小決定于備份的大小”
作用,能保持快照之前的操作,如后續(xù)操作有了影響,可以恢復(fù)之前的一些操作,也相當(dāng)于快照之前做了備份,創(chuàng)建快照后,后續(xù)的操作隊快照之前的無任何影響。
[root@station106 mnt]# lvcreate -s -L 50M -n snap -p r /dev/myvg/test
Rounding up size to full physical extent 52.00 Mi
創(chuàng)建的快照名稱snap。
-L 設(shè)置大小。
-p:permission,設(shè)置生成快照的讀寫權(quán)限,默認為RW;r為只讀。
-s:指定lvcreate生成的是一個快照。
-n:指定快照名稱
掛載快照:下面是備份的內(nèi)容。
mount /dev/myvg/snap /me
[root@station106 me]# ls
accp benet lost+found
然后備份處快照中文件即可,備份后及時刪除快照。
[root@station106 ~]# lvremove /dev/myvg/snap
Do you really want to remove active logical volume snap? [y/n]: y
Logical volume “snap” successfully removed
上面就是LVM的創(chuàng)建和使用的介紹了,本文通過幾個實例詳細介紹了LVM的創(chuàng)建,包括邏輯卷的創(chuàng)建、掛載和擴展,希望對你有所幫助。