⑴ centos5.8 系統,兩個硬碟做的lvm邏輯卷管理的操作系統,/boot未單獨做
之前你做了什麼?
用系統盤啟動,選rescue模式,如果硬碟沒壞的話,應該可以掛載原先的文件系統
⑵ 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 格式:
最後可以掛載到一個目錄上,查看結果:
⑶ Proxmox VE使用LVM新硬碟(多硬碟)
PVE 提供 Web 界面可以完成大部分的操作。但使用陣列卡,如 Dell 的 PERC 陣列卡等,在 Web 界面並不能直接完成添加硬碟和創建 LVM 卷的操作。
以下為以 Dell PERC 陣列卡掛載新硬碟為例,介紹如何為 PVE 添加新硬碟。
使用陣列卡,添加硬碟需要先在開機(或根據不同的陣列卡操作)進行掛載。
完成掛載後,在系統中查看新硬碟是否已成功掛載。
如果能看到新掛載的硬碟,就證明硬碟硬體已經安裝完成。
給新硬碟創建分區
創建 LVM 物理卷(PV)
創建新的 LVM 卷組 (VG)
不創建新 LVM 卷組,添加新物理卷至已有卷組
到這里,我們可以在 PVE Web 界面上 節點 - 磁碟 上看到新的硬碟。
接下來,進入 數據中心 界面
選擇 存儲
點擊 添加 - LVM
根據需要填寫 ID 選擇 卷組 後,點擊 添加 即可。
隨後邊可以在節點下看到剛剛新添加的存儲,以後便可以在創建新虛擬機或者在原有虛擬機下選擇這塊新加入硬碟的存儲了。
⑷ 如何使用LVM卷管理Linux系統中的磁碟
LVM邏輯卷管理器是對Linux系統中對存儲資源進行管理的一種機制,部署LVM邏輯卷管理器需要依次對對物理卷、卷組和邏輯卷的逐個配置,常見的命令分別包括有:
功能/命令 物理卷管理 卷組管理 邏輯卷管理
掃描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
顯示 pvdisplay vgdisplay lvdisplay
刪除 pvremove vgremove lvremove
擴展 vgextend lvextend
為避免實驗之間互相沖突,請您自行還原虛擬機到最初始狀態,並在虛擬機中添加兩塊新硬碟設備後開機,如圖7-7所示:
圖7-7 在虛擬機中添加一塊新的硬碟設備
在虛擬機中添加兩塊新硬碟設備的目的是為了更好的向同學們演示LVM邏輯卷管理器對於讓用戶無需關心底層物理硬碟設備的特性,咱們將會對這兩塊新的硬碟先進行創建物理卷操作,可以簡單理解成讓硬碟設備支持了LVM技術,然後將兩塊硬碟進行卷組合並,卷組的名稱可以由您來自定義,接下來是將合並後的卷組根據需求再切割出一個約為150M的邏輯卷設備,最後將這個邏輯卷設備格式化成XFS文件系統後掛載使用。現在知道大致的流程後就可以,劉遄老師還會對下面每一個步驟再做一些簡單的描述。
第1步:讓新添加的兩塊硬碟設備支持LVM邏輯卷管理器技術:
[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
第2步:將兩塊硬碟設備都加入到storage卷組中,然後查看下卷組的狀態:
[root@linuxprobe ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[root@linuxprobe ~]# vgdisplay
--- Volume group ---
VG Name storage
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 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiB
VG UUID KUeAMF-qMLh-XjQy-ArUo-LCQI-YF0o-pScxm1
………………省略部分輸出信息………………
第3步:切割出一個約為150M的邏輯卷設備:
同學們需要注意下切割單位的問題,在LVM邏輯卷管理器對LV邏輯卷的切割上面有兩種計量單位,第一種是常見以-L參數來以容量單位為對象,例如使用-L 150M來生成一個大小為150M的邏輯卷,還可以使用-l參數來指定要使用PE基本單元的個數,默認每個PE的大小為4M,因此允許使用-l 37來生成一個大小為37*4M=148M的邏輯卷:
[root@linuxprobe ~]# lvcreate -n vo -l 37 storage
Logical volume "vo" created
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID D09HYI-BHBl-iXGr-X2n4-HEzo-FAQH-HRcM2I
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 01:22:54 -0500
LV Status available
# open 0
LV Size 148.00 MiB
Current LE 37
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
………………省略部分輸出信息………………
第4步:將生成好的邏輯卷格式化後掛載使用:
Linux系統會把LVM邏輯卷管理器中的邏輯卷設備存放在/dev設備目錄中(實際上是做了一個符號鏈接,但讀者們無需關心),同時會以卷組的名稱來建立一個目錄,其中保存有邏輯卷的設備映射文件。
[root@linuxprobe ~]# mkfs.ext4 /dev/storage/vo
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
38000 inodes, 151552 blocks
7577 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@linuxprobe ~]# mkdir /linuxprobe
[root@linuxprobe ~]# mount /dev/storage/vo /linuxprobe
第5步:查看掛載狀態,並寫入到配置文件永久生效:
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 145M 7.6M 138M 6% /linuxprobe
[root@linuxprobe ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab
7.2.2 擴容邏輯卷
雖然咱們的卷組是由兩塊硬碟設備共同組成的,但用戶使用存儲資源時感知不到底層硬碟的結構,也不用關心底層是由多少塊硬碟組成的,只要卷組中的資源足夠就可以一直為邏輯卷擴容,擴展前請一定要記得卸載設備和掛載點的關聯。
[root@linuxprobe ~]# umount /linuxprobe
第1步:將上個實驗中的邏輯卷vo擴展至290M:
[root@linuxprobe ~]# lvextend -L 290M /dev/storage/vo
Rounding size to boundary between physical extents: 292.00 MiB
Extending logical volume vo to 292.00 MiB
Logical volume vo successfully resized
第2步:檢查磁碟完整性,重置硬碟容量:
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo
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/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
[root@linuxprobe ~]# resize2fs /dev/storage/vo
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.
The filesystem on /dev/storage/vo is now 299008 blocks long.
第3步:重新掛載硬碟設備並查看掛載狀態:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 279M 2.1M 259M 1% /linuxprobe
7.2.3 縮小邏輯卷
相比於擴容邏輯卷來講,對邏輯卷的縮小操作存在著更高丟失數據的風險,所以在生產環境中同學們一定要留心記得提前備份好數據,另外Linux系統規定對LVM邏輯卷的縮小操作需要先檢查文件系統的完整性,當然這也是在保證咱們的數據安全,操作前記得先把文件系統卸載掉:
[root@linuxprobe ~]# umount /linuxprobe
第1步:檢查文件系統的完整性:
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo
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/storage/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks
第2步:將LV邏輯卷的容量減小到120M:
[root@linuxprobe ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
The filesystem on /dev/storage/vo is now 122880 blocks long.
[root@linuxprobe ~]# lvrece -L 120M /dev/storage/vo
WARNING: Recing active logical volume to 120.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to rece vo? [y/n]: y
Recing logical volume vo to 120.00 MiB
Logical volume vo successfully resized
第3步:將文件系統重新掛載並查看系統狀態:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 113M 1.6M 103M 2% /linuxprobe
7.2.4 邏輯卷快照
除此之外LVM邏輯卷管理器還具備有「快照卷」的功能,這項功能很類似於我們其他軟體的還原時間點功能。例如我們可以對某一個LV邏輯卷設備做一次快照,如果今後發現數據被改錯了,咱們可以將之前做好的快照卷進行覆蓋還原,LVM邏輯卷管理器的快照功能有兩項特點,第一是快照卷的大小應該盡量等同於LV邏輯卷的容量,第二是快照功能僅一次有效,一旦被還原後則會被自動立即刪除。我們首先應當查看下卷組的信息:
[root@linuxprobe ~]# vgdisplay
--- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB
VG UUID CTaHAK-0TQv-Abdb-R83O-RU6V-YYkx-8o2R0e
………………省略部分輸出信息………………
通過卷組的輸出信息可以很清晰的看到卷組中已用120M,空閑資源有39.88G,接下來咱們在邏輯卷設備所掛載的目錄中用重定向寫入一個文件吧:
[root@linuxprobe ~]# echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt
[root@linuxprobe ~]# ls /linuxprobe
total 14
drwx------. 2 root root 12288 Feb 1 07:18 lost+found
-rw-r--r--. 1 root root 26 Feb 1 07:38 readme.txt
第1步:使用-s參數來生成一個快照卷,使用-L參數來指定切割的大小,另外要記得在後面寫上這個快照是針對那個邏輯卷做的。
[root@linuxprobe ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo
Logical volume "SNAP" created
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
………………省略部分輸出信息………………
第2步:咱們在LV設備卷所掛載的目錄中創建一個100M的垃圾文件,這樣再來看快照卷的狀態就會發現使用率上升了:
[root@linuxprobe ~]# dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 3.35432 s, 31.3 MB/s
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 83.71%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
第3步:為了校驗SNAP快照卷的效果,咱們需要對邏輯卷進行快照合並還原操作,在這之前記得先卸載掉邏輯卷設備與目錄的掛載~
[root@linuxprobe ~]# umount /linuxprobe
[root@linuxprobe ~]# lvconvert --merge /dev/storage/SNAP
Merging of volume SNAP started.
vo: Merged: 21.4%
vo: Merged: 100.0%
Merge of snapshot into logical volume vo has finished.
Logical volume "SNAP" successfully removed
第4步:快照卷會被自動刪除掉,並且剛剛在邏輯卷設備被快照後再創建出來的100M垃圾文件也被清除了:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# ls /linuxprobe/
lost+found readme.txt
看下《Linux就該這么學》第7章節吧,第7章 使用RAID與LVM磁碟陣列技術
⑸ LVM設置+添加硬碟+擴容+縮容
系統盤:/dev/vda1 數據盤:/dev/vdb1
在數據盤上建立LVM
1. fdisk -l
2.fdisk /dev/vdb (在數據盤上創建linux_8e分區)
2.1
2.2 同步分區表 partprobe或者重啟
3.pvscan
4.pvcreate /dev/vdb1
5.pvdisplay 或 pvs
6.vgscan
7.vgcreate your_vgname /dev/vdb1 例:vgcreate vg1 /dev/vdb1
註:如已存在該vg,將新硬碟空間加入該vg使用vgextend your_vgname /dev/vdb1
8.vgdisplay 或 vgs
9.lvcreate -L 40G -n your_lvname your_vgname
lvcreate -l PE總個數 your_lvname your_vgname
例:lvcreate -L 40956M -n lv1 vg1
因為實際容量為40G減去1個PE,每個PE是4M(用vgdisplay查看),所以Free總容量是(1024x40-4)M
lvcreate -l 76799 -n lv1 vg1
76799是PE總個數(用vgdisplay查看)
10.lvdisplay
11.fdisk -l
12.mkfs.ext4 /dev/mapper/vg1-lv1
或 mkfs.xfs /dev/mapper/vg1-lv1 但xfs文件系統無法縮容,不建議使用
註:使用fdisk -l 來確定lv和/dev/mapper/****的對應關系,參考http://blog.csdn.net/gtlions/article/details/22440095
13.mount /dev/mapper/vg1-lv1 /data
參考:
https://www.qcloud.com/doc/proct/213/2974
-------擴容---------------------
1.備份
xfsmp -f root.mp /
xfsmp -I
2.通過fdisk的n指令增加一個分區(如增加磁碟)
fdisk -l
fdisk /dev/sdb3
partprobe 分區立即生效
3.創建物理卷PV(如增加磁碟)
fdisk -l
pvcreate /dev/sdb3
4.vg擴容
vgextend centos /dev/sdb3
5.lv擴容
lvresize -r -L +450G /dev/mapper/centos-root (該處可填寫lvdisplay中顯示的LV Path)
或lvextend -r -l +100%FREE /dev/mapper/centos-root
注意:-r 或--resizefs參數表示自動調用在線擴容程序,ext調用resize2fs,xfs調用xfs_growfs
6.在線擴容文件系統(上一步中如帶-r或--resizefs且文件系統支持fsadm,則該步可跳過)
ext文件系統:resize2fs /dev/mapper/centos-root
xfs文件系統:xfs_growfs /dev/mapper/centos-root
7.查看 df -lh
參考:http://www.cnblogs.com/haoyufeng/p/4439192.html
---------縮容---------------
ext支持縮容,xfs不支持縮容只能擴容,
以下是ext縮容步驟
1.
xfs要縮小容量,只能先刪除然後再建立lv
1.備份
tar zcvf home.tar.gz /home
或xfsmp -f home.mp /home
2.卸載並查看是否有應用仍在使用對應的目錄分區
umount /home
lsof -f |grep /home
注意:在跑的容器掛載卷會使用文件系統,需要lsof -f |grep 多幾次
3.刪除對應lv
lvdisplay
lvremove /dev/centos/home
4.建立新的lv
lvcreate -L 300GB -n home centos
5.格式化
fdisk -l
mkfs.xfs /dev/mapper/centos-home
註:如想更換為ext4,此處使用.mkfs.ext4 /dev/mapper/centos-home
6.掛載
mount /dev/mapper/centos-home /home
vi /etc/fstab
7.還原
tar zxvf home.tar.gz