A. linux 下磁碟管理--邏輯卷--LV
在Linux磁碟操作中,如果磁碟寫滿,那麼就需要對磁碟進行擴容。把數據寫入到更大的磁碟中,這個工作量是非常大的,而且非常容易出現錯誤,危險性很高,那麼我們就可以使用邏輯卷管理器(LVM)來對磁碟進行管理擴容。這樣就可以很輕松的,沒有危險的對數據進行移動。
我們來看看LVM比傳統硬碟管理的優點:
1.靈活性容量:允許多個磁碟或分區作為一個邏輯卷。
2.可以伸縮的存儲池:不必格式化,用命令可以直接修改邏輯卷。
3.在線數據的分配:可以在線移動數據,可以熱插拔硬碟更換磁碟。
4.設備命名方便。
5.鏡像卷:很方便的做數據鏡像。
6.卷快照:快照會把邏輯卷的全部內容保存。
那麼邏輯卷要怎麼來創建呢,我們做如下步驟:
1.在創建邏輯卷前,必須要有一塊物理磁碟做物理卷(PV)。
2.由一個或多個物理卷組成一個存儲池,我們叫他卷組(VG)。
3.根據卷組中的空閑物理空間,建立邏輯卷(LV)。
上面3步時創建邏輯卷的具體思路。下面我們具體操作:
創建邏輯卷步驟:
1.使用fdisk創建一個物理分區,t 選項設置類型為:linuxLVM
2.使用partprobe向內核注冊新的分區。
3.創建物理卷pvcreate /dev/sdb1(需要創建的硬碟分區名,根據自己伺服器查找)
4.創建卷組 vgcreate 卷組名 /dev/sdb1
5.創建邏輯卷 lvcreate -n 邏輯卷名 -L 卷組大小 卷組名
lvcreate -n abc -L 10G myvg
6.創建文件系統 mkfs.ext4 /dev/卷組名/邏輯卷名
mkfs.ext4 /dev/myvg/abc
7.創建永久掛載點(寫入文件/etc/fstab),這一步就不在贅述,可以查閱我前一文章,有詳細記載。
這樣,我們的邏輯卷就創建成功了。
那我們怎麼查看物理卷,卷組,邏輯卷呢
查看物理卷信息:pvdisplay /dev/sdb1
查看卷組信息:vgdisplay myvg
查看邏輯卷信息:lvdisplay /dev/myvg/abc
邏輯卷的擴容
如果在建立的卷組還有空間,就可以給邏輯卷擴容。那怎麼做呢。
1.lvextend -L +10G /dev/myvg/abc
給邏輯卷 abc 擴容10G。減少容量直接把 + 變為 - 即可。
2.resize2fs /dev/myvg/abc 針對ext4文件
xfs_growfs /dev/myvg/abc 針對xfs文件
使擴容生效。
如果卷組空間不夠,需先增加卷組空間,在對邏輯卷擴容。
1.准備物理磁碟 fdisk ,partprobe ,mkfs.ext4
2.創建物理卷
3.給原來的卷組增加物理卷 vgextend myvg /dev/sdc1,然後vgdiaplay
創建完成,那麼我們需要刪除邏輯卷,怎麼做呢。
1.取消掛載,同時刪除 /etc/fstab 文件下的掛載內容。
2.刪除邏輯卷 lvremove /dev/myvg/abc
3.刪除卷組 vgremove myvg
4.刪除物理卷 pvremove /dev/sdb1
步驟和創建相反。
Linux下磁碟管理的邏輯卷就總結完畢。
B. 【Linux命令】磁碟管理(邏輯卷與物理卷)
Linux和Windows都採用了MBR的磁碟管理方法,也就是先對一個硬碟進行分區,在對這個一般光碟進行格式化的方法;他們的區別是: Linux系統,是先進行磁碟分區,如果需要使用該分區,將其掛載到對應目錄即可;而Windows則是自動將所有分區掛載好 傳統的磁碟管理的缺點:不方便進行分區擴充、容易導致文件系統崩潰、不適用於作為生產環境的伺服器、拷貝分區的時候要求強制卸載磁碟分區,分區轉移時耗費的時間長;
LVM磁碟管理技術 是Linux環境下對磁碟管理的一種技術,是通過一個建立在硬碟和分區之上的邏輯層來提高磁碟分區的靈活性
物理卷(PV):就是真正的物理硬碟或物理分區
卷組(VG):是將多個物理硬碟整合到一起形成的邏輯卷組;也可以視作一塊邏輯硬碟
邏輯卷(LV):卷組是一塊邏輯硬碟,邏輯硬碟必須分區之後才能使用;邏輯卷可以視作是卷組的邏輯分區
物理擴展(PE):物理擴展是用來保存數據的最小單元
系統首先把物理硬碟合並為卷組;再通過卷組分區;將卷組(邏輯硬碟)分成邏輯分區(邏輯卷)進行使用;
把物理硬碟分成分區,也可以使用一整塊的物理硬碟;把物理硬碟分區建立為物理卷(PV)也可以把整塊物理硬碟都建立為物理卷;把剛剛劃分的物理卷合為卷組(VG)卷組就已經可以動態的調整大小了,最後把卷組劃分成邏輯卷,其中邏輯卷也是可以隨時劃分大小的
pvcreate命令在系統中一般用於創建物理卷;
語法結構
在使用這個命令的時候不要對存放Linux系統的盤符進行進行使用;我們在創建物理卷的時候都是對邏輯分區進行創建的;擴展分區(Extend)不能進行創建物理卷
pvdisplay 命令用於查看當前的分區情況
語法格式以及常用參數:
查看我們剛剛創建的物理卷
pvremove命令常用於刪除對應的物理卷
語法結構:
刪除我們剛剛創建的物理卷
vgcreate 命令的作用是將一個或多個物理卷整合成一個卷組;在創建卷組之前我們需要保證系統中有足夠的除系統存放卷本身的物理卷(使用pvscan查看)需要注意的是,存放Linux的系統物理卷不能被劃分到自定義卷組中、 常用參數:-s:設定PE(最小物理存儲單元)的大小、-l:最大邏輯卷數量、-p:允許存在的最大物理卷數量
語法結構:
將我們剛剛創建物理卷添加到卷組之中
vgdisplay 這個命令可以用來查看我們創建的卷組; 常見的參數 -s 卷組信息以短格式輸出 ;vgdisplay可以查看對應卷組的簡簡訊息,所以相對於pvdisplay用處又大了那麼一點
語法格式:
查看剛剛創建的卷組和某一個卷組的信息
同樣:vgscan 命令也可以查看當前卷組使用情況的簡簡訊息
vgremove 命令的作用是刪除指定的卷組
語法結構:
刪除我們剛剛創建的卷組
注意:當刪除含有邏輯卷的卷組的時候系統會提示是否刪除對應卷組和對應邏輯卷,只有在兩個都輸入:y之後系統才會刪除對應的卷組
lvcreate 命令作用是在一個指定的卷組中創建一塊邏輯卷,前提是要求有指定的卷組; 常用參數:-L:規定創建的邏輯卷大小(直接寫大小就可以)、-l:通過PE劃分邏輯卷的大小(後面接的數字是PE的個數)
語法結構:
在指定的卷組里創建邏輯卷
lvdisplay 命令可用於查看邏輯卷的詳細信息,也可以用來查看指定邏輯卷的詳細信息 參數:-m:查看對應邏輯卷的掛載信息
語法結構:
檢查指定的邏輯卷,並查看指定邏輯卷的掛載信息:
管理邏輯卷大小的常用命令是lvextend 命令和 lvrece 命令分別表示邏輯卷大小的擴充和減少, 其中lvextend命令表示邏輯卷大小擴充,常用參數 -L(指的是擴充的具體大小)、-l(指的是擴充的LE塊數量);lvextend命令表示邏輯卷大小的減小,常用參數-L(指的是減小的具體大小)、-l(指的是減小的LE塊數量)
語法結構:
對我們指定的兩個邏輯卷分別進行容量的增加和減少,並掛載對應的邏輯卷
C. 如何查看Linux掛載磁碟
查看Linux掛載磁碟的步驟如下:
1.成功登錄到Linux的遠程主機。
D. Linux文件系統-LVM邏輯卷
LVM(Logical Volume Manager)卷組管理器,通過對底層物理磁碟的封裝,可以將多塊物理磁碟組合成邏輯資源池,提供給上層應用使用(如文件系統). LVM的好處是,可以跨物理硬碟為文件系統提供容量,並且可以動態進行分區容量的調整,而不會損壞原有的文件系統.
物理磁碟 :物理存儲介質,可以是整塊物理存儲或一個分區.
物理卷PV(physical volume) :LVM要使用物理磁碟,在物理磁碟的頭部寫入lvm標簽頭,就創建了一個PV,PV是組成VG的基本單元.
卷組VG(Volume Group) :VG相當於非LVM系統中的物理硬碟,一個卷組VG由一個或多個PV組成,形成一個存儲資源池.
邏輯卷LV(logical volume) :LV相當於非LVM系統中的硬碟分區,LV建立在卷組VG之上,文件系統建立在LV之上.
物理塊PE(physical Extent) :創建LV時可以分配的最小存儲單元,大小可以指定,默認為4MB
如上是從物理磁碟到lvm邏輯卷的創建過程及映射關系,lv01、lv02被創建後,通過device-mapper映射為邏輯塊設備(塊設備路徑/dev/vg01/lv01、/dev/vg01/lv02),供文件系統使用,通過mkfs.ext4 /dev/vg01/lv02可創建ext4文件系統.
元數據主要是兩部分,PV header + metadata,位置一般是在PV的0~2048 sector中,從2048 sector開始是數據區域.
通過pvcreate創建pv時,會將pv header寫入物理磁碟,位置一般是在磁碟的第二個sector(512B/sector),lvm掃描磁碟時,通過pv header來識別PV.
pv header主要信息包括,pv uuid、元數據位置和metadata位置.
pv header實例:
metadata記錄的是vg和lv的配置信息,以ASCII碼的方式寫入metadata區域;vg和lv的每次配置變更,都會以追加的方式寫入metadata區域,並打上時間戳,該區域寫滿後,新的變更記錄會覆蓋最早的一次記錄. 進行vgscan時,猜測應該是通過讀取最新一次的配置記錄,進行激活.
vg配置信息,主要是包含的pv信息.
lv配置信息,主要是lv的起始位置和PE大小.
實例:
pvcreate /dev/vdb1
pvcreate /dev/vdb2
pvcreate /dev/vdb3
vgcreate /dev/vdb1 /dev/vdb2 /dev/vdb3
vgcreate wan /dev/vdb1 /dev/vdb2 /dev/vdb3
lvcreate -L 300M -n lv01 wan
將PV的前2048個sector通過dd拷貝出來,用cat查看如下.
假設我們有一塊磁碟 /dev/sdb1 作為應用數據盤使用,以此為例創建lvm分區
先創建物理卷PV,命令: pvcreate /dev/sdb1
創建卷組VG,卷組命名為kylin,命令:vgcreate kylin /dev/sdb1
在VG中創建邏輯分區LV,命令:lvcreate -L 30G -n test kylin
創建邏輯分區後,進行格式化,然後便可以掛載使用.
mkfs.ext4 /dev/kylin/test
mount /dev/kylin/test /data
假設我們在上述基礎上,又獲得一塊磁碟/dev/sdc1進行擴容,將磁碟容量增加到LV分區/dev/kylin/test中,具體操作如下.
先創建物理卷PV,命令: pvcreate /dev/sdc1
將/dev/sdc1添加進VG kylin,命令:vgextend kylin /dev/sdc1
增加LV分區容量,命令:lvextend -L +30G /dev/kylin/test
lvm卷組配置備份
lvm的配置信息默認在/etc/lvm/backup、/etc/lvm/archive/兩個目錄存在備份,當lvm元數據損壞,lvm卷組讀取異常時,可通過備份文件進行恢復.
/etc/lvm/backup: 保留了當前配置的備份
/etc/lvm/archive/:保留了每次配置更新前的備份
實例演示
邏輯卷/dev/wan/lv01
在/dev/wan/lv01上創建文件系統
掛載並創建文件
覆蓋/dev/vdb1、/dev/vdb2的lvm元數據,並重啟系統,vg已不能識別
通過pvcreate命令修復pv header 和metadata數據.
激活邏輯卷
掛載/dev/wan/lv01成功,說明成功修復
E. Linux 磁碟 操作
1、查看實例上的數據盤信息。
運行以下命令:
運行結果如下所示。
依次運行以下命令,創建一個分區。
運行以下命令分區數據盤。
輸入 p 查看數據盤的分區情況。
本示例中,數據盤沒有分區。
輸入 n 創建一個新分區。
輸入 p 選擇分區類型為主分區。
說明 創建一個單分區數據盤可以只創建主分區。如果要創建四個以上分區,您應該至少選擇一次e(extended),創建至少一個擴展分區。
輸入分區編號,按 回車鍵 。
本示例中,僅創建一個分區,直接按 回車鍵 ,採用默認值 1 。
輸入第一個可用的扇區編號,按 回車鍵 。
本示例中,直接按回車鍵,採用 默認值2048 。
輸入最後一個扇區編號,按 回車鍵 。註:也可用 +size{K,M,G} 確定分區大小
本示例中,僅創建一個分區,直接按 回車鍵 ,採用 默認值 。
輸入 p 查看該數據盤的規劃分區情況。
輸入 w 開始分區,並在完成分區後退出。
運行結果如下所示。
查看新分區信息。
運行以下命令:
運行結果如下所示,如果出現 /dev/vdb1 的相關信息,表示新分區已創建完成。
步驟二:為分區創建文件系統
在新分區上創建一個文件系統。根據您的需求運行以下任一命令,創建文件系統。
創建一個 ext4 文件系統,運行以下命令。
創建一個xfs文件系統,運行以下命令。
本示例中,創建一個ext4文件系統。
步驟三:配置/etc/fstab文件並掛載分區
在/etc/fstab中寫入新分區信息,啟動開機自動掛載分區。
注意 由於釋放雲盤等操作可能會導致其他雲盤的設備名變動,建議您在/etc/fstab中使用全局唯一標識符UUID來引用新分區。
備份etc/fstab文件。
運行以下命令:
在/etc/fstab里寫入新分區信息。
root用戶可以運行以下命令直接修改/etc/fstab文件。
說明
Ubuntu 12.04系統不支持barrier,您需要運行
命令。
如果要把數據盤單獨掛載到某個文件夾,例如單獨用來存放網頁,則將命令中/mnt替換成所需的掛載點路徑。
普通用戶可以手動修改/etc/fstab文件。
運行以下命令查看新分區的UUID。
運行結果如下所示。
運行以下命令編輯/etc/fstab文件。
輸入i進入編輯模式。
在/etc/fstab文件中寫入新分區信息,UUID值請修改為前面步驟中的查詢結果。
按Esc鍵,輸入:wq,按回車鍵保存並退出。
查看/etc/fstab中的新分區信息。
運行以下命令:
運行結果如下所示。
掛載分區。
運行以下命令:
檢查掛載結果。
運行以下命令:
運行結果如下所示,如果出現新建文件系統的信息,表示文件系統掛載成功。
F. Linux文件系統和邏輯卷管理命令(二)
根據前面介紹的分區命令就可以創建分區了,不過需要注意,我們要為某些特定掛載點設置合適的分區大小。CentOS 7 (參考 Red Hat Ent erprise Linux 7 安裝手冊)至少需要為 /boot 、 / 、 /home 、 swap 這四個掛載點配置分區。下面是這四個掛載點分區大小建議:
下面是可選的掛載點分區:
為各掛載目錄創建好分區之後,就可以為其創建文件系統了。
在 Windows 環境下,格式化的操作相對簡單。通常的操作步驟是:先打開資源管理器,接著在希望被執行格式化的盤符圖標上右擊,然後選擇「格式化」,再按照提示操作即可。也可以選擇「快速格式化」,但要求分區沒有壞道。需要注意的是:對硬碟執行格式化操作時,用戶需要擁有系統管理員許可權(僅限於 Windows Vista 以及此後推出的作業系統)。在 Windows 環境中,除了可以使用圖形化的操作界面執行格式化操作之外,也可以在命令提示字元中使用 Diskpart 指令 (僅限於 Windows 2000 及以後的作業系統,包含 Windows PE)進行操作。
在 Unix/Linux 環境下,通常使用命令工具執行格式化操作。需要注意的是:對硬碟執行格式化操作時,用戶需要擁有超級用戶許可權。創建文件系統的常用命令如下:
並非所有文件系統的命令工具都已經默認安裝了。要想知道某個文件系統的命令工具是否可用,可以使用 type 命令。
每個文件系統命令都有很多命令行選項,允許你定製如何在分區上創建文件系統。要查看所有可用的命令行選項,可用 man 命令來顯示該文件系統命令的手冊頁面。所有的文件系統命令都允許通過不帶選項的簡單命令來創建一個默認的文件系統。
為分區創建了文件系統之後,下一步是將它掛載到虛擬目錄下的某個掛載點,這樣就可以將數據存儲在新文件系統中了。你可以將新文件系統通過 mount 命令掛載到虛擬目錄中需要額外空間的任何位置。
現在你可以在新分區中保存新文件和目錄了! 這種掛載文件系統的方法只能臨時掛載文件系統。當重啟 Linux 系統時,文件系統並不會自動掛載。要強制 Linux 在啟動時自動掛載新的文件系統,可以將其添加到 /etc/fstab 文件。
如果用標准分區在硬碟上創建了文件系統,為已有文件系統添加額外的空間多少是一種痛苦的體驗。你只能在同一個物理硬碟的可用空間范圍內調整分區大小。如果硬碟上沒有地方了,你就必須弄一個更大的硬碟,然後手動將已有的文件系統移動到新的硬碟上。這時候就可以通過將另外一個硬碟上的分區加入已有文件系統,動態地添加存儲空間。 Linux 邏輯卷管理器(logical volume manager, LVM)軟體包正好可以用來做這個。它可以讓你在無需重建整個文伍春好件系統的情況下,輕松地管理磁碟空間。
邏輯卷管理的核心在於如何處理安裝在系統上的硬腔鉛盤分區。在邏輯卷管理的世界裡,硬碟稱作 物理卷(physical volume, PV) 。每個物理卷都會映射到硬碟上特定的物理分區。多個物理卷集中在一起可以形成一個 卷組(volume group, VG) 。邏輯卷管理系統 將卷組視為一個物理硬碟 ,但事實上卷組可能是由分布在多個物理硬碟上的多個物理分區組成的。 卷組提供了一個創建邏輯分區的平台,而這些邏輯分區則包含了文件系統。 整個結構中的最後一層是邏輯卷(logical volume, LV) 。 邏輯卷為 Linux 提供了創建文件系統的分區環境,作用類森侍似於到目前為止我們一直在探討的 Linux 中的物理硬碟分區。Linux 系統將邏輯卷視為物理分區。 每個邏輯卷可以被格式化成某種文件系統,然後掛載到虛擬目錄中某個特定位置 。邏輯卷由 PE (physical extents,即物理區段)組成,PE 為硬碟可供指派給邏輯卷的最小單位(通常為4MB)。
注意,上圖中的第三個物理硬碟有一個未使用的分區。通過邏輯卷管理,你隨後可以輕松地將這個未使用分區分配到已有卷組:要麼用它創建一個新的邏輯卷,要麼在需要更多空間時用它來擴展已有的邏輯卷。 類似地,如果你給系統添加了一塊硬碟,邏輯卷管理系統允許你將它添加到已有卷組,為某個已有的卷組創建更多空間,或是創建一個可用來掛載的新邏輯卷。這種擴展文件系統的方法要好用得多!
優點
比起正常的硬碟分區管理,LVM 更富於彈性:
這些優點使得 LVM 對伺服器的管理非常有用,對於桌面系統管理的幫助則沒有那麼顯著,你需要根據實際情況進行取捨。
缺點
Linux LVM 是由 Heinz Mauelshagen 開發的,於 1998年 發布到了 Linux 社區。它允許你在 Linux 上用簡單的命令行命令管理一個完整的邏輯卷管理環境。 Linux LVM 有兩個可用的版本。
大部分採用 2.6 或更高內核版本的現代 Linux 發行版都提供對 LVM2 的支持。除了標準的邏輯卷管理功能外, LVM2 還提供了另外一些好用的功能。
Linux LVM 包只提供了命令行程序來創建和管理邏輯卷管理系統中所有組件。有些 Linux 發行版則包含了命令行命令對應的圖形化前端,但為了完全控制你的 LVM 環境,最好習慣直接使用這些命令。
此外,還可以使用以下命令來操作邏輯卷:
在手動增加或減小邏輯卷的大小時,要特別小心。邏輯卷中的文件系統需要手動修整來處理大小上的改變。大多數文件系統都包含了能夠重新格式化文件系統的命令行程序,比如用於 ext2、 ext3 和 ext4 文件系統的 resize2fs 程序。
第一種方法:直接增大5G,寫「+5G」
第二種方法:原來是10G,增大5G就是「15G」
動態擴容示例: