導航:首頁 > 源碼編譯 > lvm動態編譯

lvm動態編譯

發布時間:2023-07-12 18:15:18

① LVM創建邏輯卷,實現單個目錄掛載多個磁碟

LVM 是 Logical Volume Manager 的縮寫,中文一般翻譯為 "邏輯卷管理",它是 linux 下對磁碟分區進行管理的一種機制。LVM 是建立在磁碟分區和文件系統之間的一個邏輯層,系統管理員可以利用 LVM 在不重新對磁碟分區的情況下動態的調整分區的大小。如果系統新增了一塊硬碟,通過 LVM 就可以將新增的硬碟空間直接擴展到原來的磁碟分區上。

LVM 的優點如下:

LVM 也有一些缺點:

LVM 的優點對伺服器的管理非常有用,但對於桌面系統的幫助則沒有那麼顯著,所以需要我們根據使用的場景來決定是否應用 LVM。

通過 LVM 技術,可以屏蔽掉磁碟分區的底層差異,在邏輯上給文件系統提供了一個卷的概念,然後在這些卷上建立相應的文件系統。下面是 LVM 中主要涉及的一些概念。

可以這么理解,LVM 是把硬碟的分區分成了更小的單位(PE),再用這些單元拼成更大的看上去像分區的東西(PV),進而用 PV 拼成看上去像硬碟的東西(VG),最後在這個新的硬碟上創建分區(LV)。文件系統則建立在 LV 之上,這樣就在物理硬碟和文件系統中間添加了一層抽象(LVM)。下圖大致描述了這些概念之間的關系:

對上圖中的結構做個簡單的介紹:兩塊物理硬碟 A 和 B 組成了 LVM 的底層結構,這兩塊硬碟的大小、型號可以不同。PV 可以看做是硬碟上的分區,因此可以說物理硬碟 A 劃分了兩個分區,物理硬碟 B 劃分了三個分區。然後將前三個 PV 組成一個卷組 VG1,後兩個 PV 組成一個卷組 VG2。接著在卷組 VG1 上劃分了兩個邏輯卷 LV1 和 LV2,在卷組 VG2 上劃分了一個邏輯卷 LV3。最後,在邏輯卷 LV1、LV2 和 LV3 上創建文件系統,分別掛載在 /usr、/home 和 /var 目錄。

step-1:使用 fdisk -l 查看當前的磁碟信息

step-3:安裝gdisk ,使用gdisk對物理磁碟進行分區

通過 p 命令可以查看磁碟當前的狀態:

輸出中的前幾行是磁碟的基本信息,比如總大小為 20G,一共有多少個扇區(sector),每個扇區的大小,當前剩餘的空間等等。然後是已經存在的分區信息(上圖顯示還沒有任何分區):

下面通過 以下命令來創建新分區(依次敲):

step-4:如果之前已經劃分為多個分區,則可以執行 fdisk /dev/sdc 合並為1個分區,把分區刪除後,再對/dev/sdc進行LVM

step-5:現在我們可以基於磁碟分區 /dev/sdd1等來創建 LVM 物理卷(LV),可以通過 pvcreate 命令來完成

使用 pvdisplay 可以看到我們創建的5個物理卷。

step-6:基於一個或多個 PV,可以創建 VG,lvm_data是vg組的名字,可以自定義,,vgs 命令可以觀察 VG 的信息

step-7:有了 VG 就可以創建邏輯卷 LV 了,lvcreate 命令用來創建 LV,讓我們在前面創建的lvm_data上創建名稱為lvm_data_1的 LV

當我們創建 LV lvm_data/lvm_data_1時,其實是創建了名稱為 /dev/lvm_data/lvm_data_1的設備文件,現在我們來格式化這個邏輯卷(在該 LV 上創建文件系統),目標為比較常見的 ext4 格式:

最後可以掛載到一個目錄上,查看結果:

② lvm是什麼意思,linux里的。說白話,網上寫的沒看懂,請說通俗易懂點,謝謝咯

LVM,全稱Logical VolumeManager,即邏輯卷管理,是Linux環境下對磁碟分區進行管理的一種機制,LVM是建立在磁碟和分區之上的一個邏輯層,來提高磁碟分區管理的靈活性。通過LVM系統管理員可以輕松管理磁碟分區,如:將若干個磁碟分區連接為一個整塊的卷組,形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組,並進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁碟存儲按照組的方式進行命名、管理和分配。當系統添加了新的磁碟,通過LVM管理員就不必將磁碟的文件移動到新的磁碟上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁碟即可。

一般來說,物理磁碟或分區之間是分隔的,數據無法跨盤或分區,而各磁碟或分區的大小固定,重新調整比較麻煩。LVM可以將這些底層的物理磁碟或分區整合起來,抽象成容量資源池,以劃分成邏輯卷的方式供上層使用,其最主要的功能即是可以在無需關機無需重新格式化的情況下彈性調整邏輯卷的大小。

LVM的寫入模式

LVM有兩種寫入模式:線性模式和條帶模式

線性模式即寫完一個設備後再寫另一個設備;

條帶模式就有點類似於RAID0,即數據是被分散寫入到LVM各成員設備上的。

因為條帶模式的數據不具有安全性,且LVM並不強調讀寫性能,故LVM默認為線性模式,這樣即使一個設備壞了,其它設備上的數據還在。

③ 如何在LINUX下使用LVM

LVM是Logical Volume Manager(邏輯卷管理器)的簡寫,它為主機提供了更高層次的磁碟存儲管理能力。LVM可以幫助系統管理員為應用與用戶方便地分配存儲空間。在LVM管理下的邏輯卷可以按需改變大小或添加移除。另外,LVM可以為所管理的邏輯卷提供定製的命名標識。因此,使用LVM主要是方便了對存儲系統的管理,增加了系統的擴展性。
一、准備lvm環境
1.硬碟的准備
添加了一塊硬碟/dev/hdb。
准備了三個分區,方案如下:容量為100M,僅為了實驗准備。
/dev/hdb1
/dev/hdb2
/dev/hdb3
2.轉換分區類型為lvm卷
fdisk /dev/hdb
t轉換為lvm卷類型
Device Boot Start End Blocks Id System
/dev/hdb1 1 208 98248+ 8e Linux LVM
/dev/hdb2 209 416 98280 8e Linux LVM
/dev/hdb3 417 624 98280 8e Linux LVM
然後w保存並且
#partprobe /*使用磁碟分區生效*/
二、lvm創建過程
1.從硬碟驅動器分區中創建物理卷(physical volumes-PV)。
2.從物理卷中創建卷組(volume groups-VG)
3.從卷組中創建邏輯卷(logical volumes-LV),並分派邏輯卷掛載點,其中只有邏輯卷才可以寫數據。
lvm的最大的特點就是可以動態的調整分區的大小,並且可以隨著分區容量的增長而增加磁碟空間的容量。
LVM配置與創建
三、LVM的物理卷PV
1.相關命令
pvcreate 創建PV
pvscan 掃描PV
pvdisplay 顯示PV
pvremove 刪除PV
partprobe
2.創建物理卷
如果以上容量不夠,可以再添加其它分區到物理卷中。

[root@redhat ~]# pvcreate /dev/hdb1 /dev/hdb2
Physical volume 「/dev/hdb1″ successfully created
Physical volume 「/dev/hdb2″ successfully created
[root@redhat ~]# pvscan
PV /dev/hdb1 lvm2 [95.95 MB]
PV /dev/hdb2 lvm2 [95.98 MB]
Total: 2 [191.92 MB] / in use: 0 [0 ] / in no VG: 2 [191.92 MB]
[root@redhat ~]# pvdisplay
— NEW Physical volume —
PV Name /dev/hdb1
VG Name
PV Size 95.95 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2Ni0Tx-oeSy-zGUP-t7KG-Fh22-0BUi-iyPhhQ
— NEW Physical volume —
PV Name /dev/hdb2
VG Name
PV Size 95.98 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2XLXfY-V3L2-Mtsl-79U4-ovuJ-YaQf-YV9qHs

四、創建LVM的卷組VG
1.相關命令
vgcreate 創建VG
vgscan 掃描VG
vgdispaly
vgextend
vgrece
vgchange
vgremove
2.創建邏輯卷VG

[root@redhat ~]# vgcreate vg0 /dev/hdb1 /dev/hdb2
Volume group 「vg0″ successfully created
[root@redhat ~]# vgscan
Reading all physical volumes. This may take a while…
Found volume group 「vg0″ using metadata type lvm2
[root@redhat ~]# vgdisplay
— Volume group —
VG Name vg0
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 184.00 MB
PE Size 4.00 MB /*分配的塊的大小默認為4M*/
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184.00 MB
VG UUID kL5CGk-5Odk-r3PK-9q0A-s94h-OHv4-BojBnH增加VG容量到1TB的方法:
vgcreate -s 16M vg0 /dev/hdb1 /dev/hdb2

3.刪除與添加邏輯卷
[root@redhat ~]# vgrece vg0 /dev/hdb2
Removed 「/dev/hdb2″ from volume group 「vg0″
[root@redhat ~]# vgextend vg0 /dev/hdb2
Volume group 「vg0″ successfully extended
五、創建LVM的邏輯卷LV
1.相關命令
lvcreate
lvscan
lvdisplay
lvextend
lvrece
lvremove
lvresize
2.創建邏輯卷LV

[root@redhat ~]# lvcreate -L 184M -n data vg0
Logical volume 「data」 created
[root@redhat ~]# lvscan
ACTIVE 『/dev/vg0/data』 [184.00 MB] inherit
[root@redhat ~]# lvdisplay
— Logical volume —
LV Name /dev/vg0/data
VG Name vg0
LV UUID HNKO5d-yRre-qVnP-ZT8D-fXir-XTeM-r6WjDX
LV Write Access read/write
LV Status available
# open 0
LV Size 184.00 MB
Current LE 46
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0

六、掛載LVM的邏輯卷LV
lv的格式化:
mkfs.ext3 /dev/vg0/data
mdkir /mnt/lvm
mount /dev/vg0/data /mnt/lvm
[root@redhat ~]# ls /mnt/lvm
lost+found
[root@redhat ~]# df -T
文件系統 類型 1K-塊 已用 可用 已用% 掛載點
/dev/hda3 ext3 7625092 2219460 5012040 31% /
/dev/hda1 ext3 101086 10006 85861 11% /boot
tmpfs tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data
ext3 182469 5664 167385 4% /mnt/lvm
七、LVM的容量調整
LVM的容量調整可以在多個環節進行調整,比如:可以在物理卷上,VG上,以及LV上,都可以進行容量的擴展,這也是LVM它的一個優勢所在。
1.添加物理卷
首先應卸載在使用過程中的LV,然後必須保證該磁碟的類型是lvm類型,才能添加進來。

[root@redhat ~]# umount /dev/vg0/data
[root@redhat ~]# pvcreate /dev/hdb3
Physical volume 「/dev/hdb3″ successfully created
[root@redhat ~]# pvscan
PV /dev/hdb1 VG vg0 lvm2 [92.00 MB / 0 free]
PV /dev/hdb2 VG vg0 lvm2 [92.00 MB / 0 free]
PV /dev/hdb3 lvm2 [95.98 MB]
Total: 3 [279.98 MB] / in use: 2 [184.00 MB] / in no VG: 1 [95.98 MB]

2.添加VG的容量
把上面新添加的LVM磁碟加入到vg0卷組中。

[root@redhat ~]# vgextend vg0 /dev/hdb3
Volume group 「vg0″ successfully extended
[root@redhat ~]# vgdisplay
— Volume group —
VG Name vg0
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 276.00 MB
PE Size 4.00 MB
Total PE 69
Alloc PE / Size 46 / 184.00 MB
Free PE / Size 23 / 92.00 MB
VG UUID kL5CGk-5Odk-r3PK-9q0A-s94h-OHv4-BojBnH

3.添加入LV中VG增珈的容量
把新加入LVM磁碟的容量加入LV中。
[root@redhat ~]# lvextend -L +92M /dev/vg0/data
Extending logical volume data to 276.00 MB
Logical volume data successfully resized
[root@redhat ~]# lvscan
ACTIVE 『/dev/vg0/data』 [276.00 MB] inherit
[root@redhat ~]# resize2fs -f /dev/vg0/data
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/data to 282624 (1k) blocks.
The filesystem on /dev/vg0/data is now 282624 blocks long.
如果不做這一步的話,在實現掛載的時候,發現LV的容量沒有真正的加入進LV卷中,因為相關信息寫入到了磁碟超級塊中。
4.掛載使用
[root@redhat ~]# mount /dev/vg0/data /mnt/lvm
[root@redhat ~]# df
文件系統 1K-塊 已用 可用 已用% 掛載點
/dev/hda3 7625092 2219468 5012032 31% /
/dev/hda1 101086 10006 85861 11% /boot
tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data 273569 6168 256097 3% /mnt/lvm
LVM的卸載
八、LVM的卸載方法
如果不想使用LVM的話,可以卸載它, 卸載的方法與分區的刪除方法類似,就是最後創建的最先刪除。順序如下:
先刪除LV
再刪除VG
最後PV
以前的LVM的分區應用fdisk轉換成其它類型的文件系統,當普通分區使用。
九、LVM的卸載過程
1.umount取消掛載

[root@redhat ~]# df
文件系統 1K-塊 已用 可用 已用% 掛載點
/dev/hda3 7625092 2219468 5012032 31% /
/dev/hda1 101086 10006 85861 11% /boot
tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data 273569 6168 256097 3% /mnt/lvm
[root@redhat ~]# umount /mnt/lvm

2.刪除LV邏輯卷
[root@redhat ~]# lvremove /dev/vg0/data
Do you really want to remove active logical volume 「data」? [y/n]: y
Logical volume 「data」 successfully removed
3.刪除VG卷組
[root@redhat ~]# vgchange -a n vg0
0 logical volume(s) in volume group 「vg0″ now active
說明:把vg0轉換成休眠狀態,實驗中這一步可以不用。
[root@redhat ~]# vgremove vg0
Volume group 「vg0″ successfully removed
4.刪除PV

[root@redhat ~]# pvscan 查看pv的情況
PV /dev/hdb1 lvm2 [95.95 MB]
PV /dev/hdb2 lvm2 [95.98 MB]
PV /dev/hdb3 lvm2 [95.98 MB]
Total: 3 [287.90 MB] / in use: 0 [0 ] / in no VG: 3 [287.90 MB]
[root@redhat ~]# pvremove /dev/hdb1 /dev/hdb2 /dev/hdb3
Attempt to close device 『/dev/cdrom』 which is not open.
Labels on physical volume 「/dev/hdb1″ successfully wiped
Labels on physical volume 「/dev/hdb2″ successfully wiped
Labels on physical volume 「/dev/hdb3″ successfully wiped

5.最後就是用fdisk修改磁碟的類型了。

④ 關於linux中的磁碟擴容和LVM的疑問

LVM 甚至可以在伺服器不斷電的情況下動態對磁碟進行擴容,再虛擬一塊硬碟後來加入到LVM中

1.添加虛擬硬碟
先關掉虛擬機的電源,然後選擇虛擬機,點右鍵,setting裡面點擊Add後選擇硬碟設備,設置硬碟為1G

2.開啟電源,RHEL5啟動完成後

格式化硬碟,劃出硬碟分區並將格式改為 LVM格式

fdisk -l 查看硬碟分區情況

Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 522 4088542+ 8e Linux LVM

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM

fdisk /dev/hdb

n

p

2

Command (m for help): n 新建分區
Command action
e extended
p primary partition (1-4) 分區類型為主分區(如果硬碟分區超過4個了,則選擇擴展分區,再新建邏輯分區)
p
Partition number (1-4): 2 第幾個分區
First cylinder (1986-8322, default 1986): 起始磁柱
Using default value 1986 這時選默認
Last cylinder or +size or +sizeM or +sizeK (1986-8322, default 8322): +1024M 這里我們將這個分區設成一G

Command (m for help): p 查看分區情況

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 83 Linux

Command (m for help): t 更改分區的類型
Partition number (1-4): 2 選擇第二個
Hex code (type L to list codes): 8e 這里磁碟格式為 LINUX LVM ,可以使用L來進行查看

Command (m for help): p 再次查看

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 8e Linux LVM 可以看到 hdb2已經變成LVM格式了

Command (m for help): w 保存,切記要保存,不然上面分區,格式化的操作都不會執行,等於白做了
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks. 這里提示我們重啟系統後分區表才會改變,其實用下面一個命令即可

partprobe

[root@el5test ~]# fdisk -l

Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 522 4088542+ 8e Linux LVM

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 8e Linux LVM 可以看到hdb2格式化完成了

3.加入到LVM中

[root@el5test ~]# pvdisplay 先看下系統中PV
--- Physical volume ---
PV Name /dev/hda2
VG Name VolGroup00
PV Size 3.90 GB / not usable 24.72 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 124
Free PE 0
Allocated PE 124
PV UUID 0fxOi9-ZeOY-OlQf-QmIO-Gpb4-kaci-24ovGP

--- Physical volume ---
PV Name /dev/hdb1
VG Name VolGroup00
PV Size 976.96 MB / not usable 16.96 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 30
Free PE 5
Allocated PE 25
PV UUID dtNfYJ-31fK-5CxL-9Pxa-pYWb-GcQ5-Vt5011

[root@el5test ~]# pvcreate /dev/hdb2 建立物理卷(PV)
Physical volume "/dev/hdb2" successfully created

[root@el5test ~]# vgextend VolGroup00 /dev/hdb2 把新物理卷加入到卷組中去
/dev/cdrom: open failed: Read-only file system
Attempt to close device '/dev/cdrom' which is not open.
Volume group "VolGroup00" successfully extended 加入成功

[root@el5test ~]# lvextend -L+1G /dev/VolGroup00/LogVol00 把新的空間加到邏輯卷中去
Extending logical volume LogVol00 to 5.03 GB
Logical volume LogVol00 successfully resized

[root@el5test ~]# resize2fs -p /dev/VolGroup00/LogVol00 加上去之後,目前用df -h還看不到新的空間,需要激活
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1318912 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 1318912 blocks long.

[root@el5test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4.9G 3.0G 1.7G 65% / 可以看到這個卷動態放大了
/dev/hda1 99M 14M 81M 15% /boot
tmpfs 132M 0 132M 0% /dev/shm
none 132M 104K 132M 1% /var/lib/xenstored

閱讀全文

與lvm動態編譯相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163