1、LVM介紹
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。LVM是在磁盤與文件系統之間的一個邏輯層,主要用來管理多磁盤多分區進行與多文件系統的映射。管理員利用LVM可以在硬盤不用重新分區的情況下動態調整文件系統的大小,並且利用LVM管理的文件系統可以跨越物理硬盤。當服務器添加了新的硬盤后,管理員不必將原有的文件移動到新的硬盤上,而是通過LVM直接擴展文件系統來跨越物理硬盤。
物理存儲介質(The physical media):LVM存儲介質,可以是硬盤分區、整個硬盤、raid陣列或SAN硬盤。設備必須初始化為LVM物理卷,才能與LVM結合使用。
物理卷PV(physical volume):物理卷就是LVM的基本存儲邏輯塊,但和基本的物理存儲介質比較卻包含與LVM相關的管理參數,創建物理卷可以用硬盤分區,也可以用硬盤本身。
卷組VG(Volume Group):LVM卷組類似於非LVM系統中的物理硬盤,一個卷組VG由一個或多個物理卷PV組成。可以在卷組VG上建立邏輯卷LV。
邏輯卷LV(logical volume):類似於非LVM系統中的硬盤分區,邏輯卷LV建立在卷組VG之上。在邏輯卷LV之上建立文件系統。
物理塊PE(physical Extent):物理卷PV中可以分配的最小存儲單元,PE的大小可以指定,默認為4MB
邏輯塊LE(Logical Extent):邏輯卷LV中可以分配的最小存儲單元,在同一卷組VG中LE的大小和PE是相同的,並且一一相對。
總結:多個磁盤/分區/raid-->多個物理卷PV-->合成卷組VG-->從VG划分出邏輯卷LV-->格式化LV,掛載使用。
注意:老的Linux在創建PV時,需要將分區類型改為Linux LVM(8e)。但新的系統已經非常智能,即使默認的Linux分區(83),也可以創建PV。
LVM的優點:
卷組VG可以使多個硬盤空間看起來像是一個大硬盤。
邏輯卷LV可以創建跨多個硬盤空間的分區。
在使用邏輯卷LV時,可以在空間不足時動態調整大小,不需要考慮邏輯卷LV在硬盤上的位置,不用擔心沒有可用的連續的空間。
可以在線對卷組VG、邏輯卷LV進行創建、刪除、調整大小等操作。但LVM上的文件系統也需要重新調整大小。
LVM允許創建快照,用來保存文件系統的備份。
注意:
LVM是軟件的卷管理方式,RAID是磁盤管理的方法。對於重要的數據使,用RAID保護物理硬盤不會因為故障而中斷業務,再用LVM來實現對卷的良性管理,更好的利用硬盤資源。LVM有兩種寫入機制:線性(寫完一個PV再寫下一個PV,默認)、條帶(平均)
基本命令如下:
2、LVM磁盤掛接示例
在現場客戶環境,硬件部門給分配服務器時(雲上的虛擬機),默認會分配50G的空間作為根目錄使用,另外為了滿足日常使用,會根據需要分配一個磁盤(不掛接)。
在這里初步想了幾種掛接方案:
a、直接進行分區,並建立/data目錄,將整個磁盤掛接上。(請參照上一篇隨筆)
b、創建PV,將PV加入到根目錄VG中,在VG上創建新的LV,創建/data目錄,將新建的LV掛接上。
c、創建PV,將PV加入到根目錄VG中,直接擴展根目錄LV使用。
d、創建PV,創建VG,將PV添加到VG中,在VG上創建新的LV,創建/data目錄,將新建的LV掛接上。
第一種方式因為后續不利於擴展等原因直接棄用,對於后面三種方式,咨詢公司相關運維人員,其區別不大。現在現場采取的方式如下:
對於應用服務器,空間要求不高,采用直接擴展根目錄的方式c;
對於文件服務器、數據存儲服務器等需要有大容量數據目錄的,采用b方式。
下面對介紹詳細處理方法:
(1)、通過命令查看當前磁盤掛接情況
fdisk –l lsblk df -h
可以看到服務器有一個1T的磁盤未分配,沒有進行任何格式化、掛接處理。
注意:如果磁盤之前已經掛接到某個目錄,可以先用 umount /dev/sdb1 命令解除掛接,然后直接跳轉到第三步進行操作。
(2)、重新建立分區(fdisk /dev/sdb),輸入請參考圖上標注
執行完成后會創建/dev/sdb1的分區。
(3)、對分區進行格式設置(fdisk /dev/sdb),設置參數如圖所示。
(4)、創建物理卷PV(pvcreate /dev/sdb1)
(5)、通過命令查看創建的物理卷信息(pvs查看概要信息或者pvdisplay查看詳細信息)。
(6)、將創建的物理卷添加到卷組VG中(vgextend centos /dev/sdb1)這里的centos為VG名稱,如果不知道現在服務器上有哪些VG,可以通過vgs或者vgdisplay查看。
(7)、創建或者擴充現有LV
如果采用擴展根目錄的方式,直接通過lvs或者lvdisplay名稱查看根目錄LV,直接在上面擴展即可。(lvextend -l +100%FREE /dev/centos/root)
對於lvextend 命令,有多種使用方法,可以自行進行百度。
現在通過df -h命令查看根目錄大小其實還沒有發生改變,需要執行命令使得擴容生效
resize2fs /dev/centos/root 針對ext格式命令
xfs_growfs /dev/centos/root 針對xfs格式命令
如果是創建新的邏輯卷,創建目錄進行掛接的方式:
先使用命令創建邏輯卷:lvcreate -l +100%FREE -n lv_data centos,命令具體使用方式可以百度,這里是在名為centos的vg上創建一個名為lv_data的邏輯卷,其大小使用的是centos上所有剩余空間。
對創建的名為lv_data的邏輯卷創建文件系統:mkfs.xfs /dev/centos/lv_data,格式化后可以通過 fsck -N /dev/centos/lv_data 命令進行檢查確認。
創建目錄並與邏輯卷掛接:
mkdir /data
mount /dev/centos/lv_data /data
掛接是否成功可以通過df -h命令進行檢查。
創建完成后,需要設置配置文件,是的每次重啟后進行自動掛接。
vim /etc/fstab,在文件中添加以下信息:
/dev/centos/lv_data /data xfs defaults 0 0
至此,所有操作均已經完成,主要在使用mount或者umount的時候,在啟動之前一定要同步修改/etc/fstab文件,如果文件中有添加掛接信息但是實際上沒有該磁盤或者分區等,重啟后系統會進入應急模式,對於虛擬機而言,無法進行遠程的,需要到后台登錄處理。錯誤如下:
welcome to emergency mode!after logging in ,type “journalctl -xb” to view system logs,“systemctl reboot” to reboot ,“systemctl default” to try again to boot into default mode。
報這個錯誤多數情況下是因為/etc/fstab文件的錯誤。注意一下是不是加載了外部硬盤、存儲器或者是網絡共享空間,在重啟時沒有加載上導致的。
可以直接在后台登錄,輸入root密碼后直接檢查修改/etc/fstab文件,確定無誤后重啟即可。
參考:
https://blog.csdn.net/littlebrain4solving/article/details/75618415