Linux lvm 分區知識筆記

盤面上能夠細分出扇區(Sector)與柱面(Cylinder)兩種單位,其中扇區每一個爲512bytes那麼大。php

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

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

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

磁盤分區表(partion table)

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

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

分區的優勢:github

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

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

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

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

分區是個很麻煩的東西,由於它是以柱面爲單位的「連續」磁盤空間,且擴展分區又是相似獨立的磁盤空間。bash

擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,因此說擴展分區可分紅若干邏輯分區。 他們的關係是包含的關係,全部的邏輯分區都是擴展分區的一部分。app

磁盤分區

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安裝,支持命令。

參考

開機掛載

相關文章
相關標籤/搜索