Linux lvm 分區知識筆記


盤面上可以細分出扇區(Sector)與柱面(Cylinder)兩種單位,其中扇區每個為512bytes那么大。

通常所說的”硬盤分區”就是指修改磁盤分區表,它定義了”第n個磁盤塊是從第 x個柱面到第y個柱面”.因此,當系統要讀取第n個磁盤塊時,就是去讀硬盤上第x個柱面到第y個柱面的信息.

整塊磁盤的第一個扇區特別重要,因為它記錄了整塊磁盤的重要信息:

  1. 主引導分區(Master Boot Record, MBR):可以安裝引導加載程序的地方,有446bytes.
  2. 分區表(partition table):記錄整塊磁盤分區的狀態,有64bytes。

磁盤分區表(partion table)

在分區表所在的64bytes容量中,總共分為四組記錄區。每組記錄區記錄了該區段的起始與結束的柱面號碼。

  • 其實所謂的分區只是針對那個64bytes的分區表進行設置而已。
  • 硬盤默認的分區表僅能寫入四組分區信息
  • 四組分區信息我們稱為主(Primary)或者擴展(Extended)分區。
  • 分區最小單位為柱面(cylinder)。

分區的優點:

  1. 數據安全
  2. 有助於數據讀取的速度和性能

擴展分區的目的是使用額外的扇區記錄分區信息,擴展分區本身並不能拿來格式化。由擴展分區切出來的分區,就被稱為邏輯分區(logical partition)。邏輯分區的設備名稱號碼由5號開始。

主分區、擴展分區和邏輯分區的定義:

  • 主分區與擴展分區最多可以有4個(磁盤限制)
  • 擴展分區最多只有1個(操作系統限制)
  • 邏輯分區是由擴展分區持續切割出來的分區
  • 能夠被格式化后作為數據訪問的分區為主分區與邏輯分區,擴展分區無法格式化。
  • 邏輯分區的個數依操作系統而不同,SATA硬盤則有11個邏輯分區(5號到15號)。

分區是個很麻煩的東西,因為它是以柱面為單位的“連續”磁盤空間,且擴展分區又是類似獨立的磁盤空間。

擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若干邏輯分區。 他們的關系是包含的關系,所有的邏輯分區都是擴展分區的一部分。

磁盤分區

LVM卷管理

disk=/dev/vdb
pvcreate $disk # 磁盤還沒有分主分區或者擴展分區,就可以直接創建物理卷(Physical volume (PV) )了,物理卷的名字就是磁盤的名字/分區的名字
vgcreate ci-vg $disk # 創建卷組Volume group (VG),卷組名為 ci-vg1
lvcreate -L 100G  -n app_data ci-vg # or lvcreate -L 100G  --name app_data ci-vg,將ci-vg 卷組中的 100G 空間划分為邏輯卷Logical volume (LV),邏輯卷名為 app_data 
# lvcreate -l +100%FREE -n app_data ci-vg 將卷組百分百的空間都划分給 app_data 這個邏輯卷
lvdisplay # 查看邏輯卷路徑
mkfs.ext3 /dev/ci-vg/app_data # 格式化
mount /dev/ci-vg/app_data /data # 掛載,前提是要有 /data 目錄
df -Th # 查看

接着,為了開機自動掛載,執行:

echo "mount /dev/ci-vg/apkg /apkg" >> /etc/rc.d/rc.local

這個命令在有些情況不會生效,開機自啟掛載磁盤,穩妥的方式推薦編輯 /etc/fstab 文件:

/dev/ci-vg/app_data /data ext3 defaults 0 0

分區常用命令

  • lsblk:查看磁盤分區情況 ★★★
  • vgdisplay: 查看卷組信息
  • vgs: 查看卷組信息,簡略
  • fdisk -l:查看系統內分區信息

擴容

pvcreate /dev/vdc # 新增磁盤vdc,創建為物理卷
vgextend ci-vg1 /dev/vdc # 將新增的物理卷添加到已有的邏輯卷組中
lvextend -l +100%FREE /dev/ci-vg1/apkg # # 用 lvextend 將 /dev/ci-vg1/apkg 所在卷組所有剩余空間都分配給了它
resize2fs /dev/ci-vg1/apkg # # 磁盤格式是 ext2 ext3 ext4 使用 resize2fs, xfs使用 xfs_growfs 對擴容后的 LV 格式大小調整

擴容參考

FAQ

Q1:發現開機啟動時,rc.local沒有自啟動執行

嘗試了chmod +x /etc/rc.d/rc.local之后,問題依舊,排除了權限的問題。
編輯rc.local文件,在touch /var/locak/subsys/local下一行,加上sleep 10,問題解決。

Q2: -bash: pvcreate: command not found

通過yum install lvm2安裝,支持命令。

參考

開機掛載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM