盤面上可以細分出扇區(Sector)與柱面(Cylinder)兩種單位,其中扇區每個為512bytes那么大。
通常所說的”硬盤分區”就是指修改磁盤分區表,它定義了”第n個磁盤塊是從第 x個柱面到第y個柱面”.因此,當系統要讀取第n個磁盤塊時,就是去讀硬盤上第x個柱面到第y個柱面的信息.
整塊磁盤的第一個扇區特別重要,因為它記錄了整塊磁盤的重要信息:
- 主引導分區(Master Boot Record, MBR):可以安裝引導加載程序的地方,有446bytes.
- 分區表(partition table):記錄整塊磁盤分區的狀態,有64bytes。
磁盤分區表(partion table)
在分區表所在的64bytes容量中,總共分為四組記錄區。每組記錄區記錄了該區段的起始與結束的柱面號碼。
- 其實所謂的分區只是針對那個64bytes的分區表進行設置而已。
- 硬盤默認的分區表僅能寫入四組分區信息
- 四組分區信息我們稱為主(Primary)或者擴展(Extended)分區。
- 分區最小單位為柱面(cylinder)。
分區的優點:
- 數據安全
- 有助於數據讀取的速度和性能
擴展分區的目的是使用額外的扇區記錄分區信息,擴展分區本身並不能拿來格式化。由擴展分區切出來的分區,就被稱為邏輯分區(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
安裝,支持命令。
參考
開機掛載
- CentOS 6.3開機自動掛載磁盤和文件夾 fstab 文件格式介紹