LVM

  • LVM:Logical Volume Manager # 邏輯卷管理
  • DM:Device Mapper # 設(shè)備映射器,可以將一個(gè)或多個(gè)物理塊設(shè)備組成一個(gè)邏輯塊設(shè)備
  • VG:Volume Group # 卷組,一個(gè)或多個(gè)物理塊設(shè)備的組合
  • PV:Physical Volume # 實(shí)體卷,物理卷,物理分區(qū)
  • LV:Logical Volume # 在 VG 上創(chuàng)建的可供系統(tǒng)和應(yīng)用調(diào)用的虛擬塊設(shè)備,Each block of data in an LV is stored on one or more PV in the VG, according to algorithms implemented by Device Mapper (DM) in the kernel.
  • PE:Physical Extents # 物理區(qū)段,硬盤(pán)可供指派給邏輯卷的最小單位(通常為4MB)
  • LE:Logic Extends # 邏輯區(qū)域,跟PE一樣,只不過(guò)站在LV的視角上是叫LE

邏輯卷塊設(shè)備文件在系統(tǒng)的存儲(chǔ)位置,以下同為 符號(hào)鏈接文件,指向 /dev/dm<#>

  • /dev/mapper/VG_NAME-LV_NAME
    如:/dev/mapper/vg0-root
  • /dev/VG_NAME/LV_NAME
    如:/dev/vg0/root

1. PV 管理

  • pvcreate # 初始化LVM使用的物理卷
    # pvcreate /dev/sda3
    注:在創(chuàng)建 PV 前,應(yīng)先把分區(qū)類(lèi)型調(diào)整為 Linux LVM (8e)

  • pvs # 顯示簡(jiǎn)要的 PV 信息

  • pvdisplay # 顯示詳細(xì)的 PV 信息

  • pvmove # 移動(dòng) PV 上的 PE 信息到另一個(gè) PV

  • pvremove # 刪除該 PV,如此以至于 LVM 不會(huì)再把該設(shè)備識(shí)別為 PV

2. VG 管理

  • vgcreate # 創(chuàng)建 VG
vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] 
  -s   指定 PE 大小

# vgcreate myvg /dev/sda{3,5,6}

  • vgs # 顯示簡(jiǎn)要的 VG 信息

  • vgdisplay # 顯示詳細(xì)的卷組信息
    # vgdisplay -v

  • vgrename # 重命名卷組名稱
    # vgrename VG VG_new

  • vgextend # 添加 PV 至 VG

vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]

# vgextend myvg /dev/sda{7,8}

  • vgreduce # 將 PV 從 VG 中移除
vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]

注:要先做 pvmove
# pvmove /dev/sda7 # 移動(dòng) 7 到其他任一 PV
或 # pvmove /dev/sda7 /dev/sda8 # 從 7 移到 8
# vgreduce myvg /dev/sda7 # 從卷組 myvg 中移除 PV /dev/sda7
# vgreduce -a myvg # 從卷組 myvg 中移除所有無(wú)用的 PVs
# vgreduce --removemissing myvg # 從卷組 myvg 中移除所有遺失的 PVs

  • vgremove # 刪除卷組

3. LV 管理

  • lvcreate # 創(chuàng)建 LV
lvcreate -L size [mMgGtT] -n NAME VolumeGroup 

# lvcreate -L 2G -n mylv1 myvg

  • lvs

  • lvdisplay
    # lvdisplay -v

  • lvextend # 擴(kuò)展邏輯卷

lvextend -L [+] size [mMgGtT] /dev/VG_NAME/LV_NAME

# lvextend -L 3G /dev/myvg/mylv1
# lvextend -L +1G /dev/myvg/mylv1
then
# resize2fs /dev/VG_NAME/LV_NAME # 針對(duì)該 LV 已經(jīng)格式化后,或用 -r 參數(shù)
# lvextend -L +1G -r /dev/myvg/mylv1

  • lvreduce # 縮減邏輯卷
lvreduce -L [-] size [mMgGtT] /dev/VG_NAME/LV_NAME

# lvreduce -L -1G /dev/myvg/mylv1
# lvreduce -L 2G /dev/myvg/mylv1

  • 合理步驟:
    # umount /dev/VG_NAME/LV_NAME
    # e2fsck -f /dev/VG_NAME/LV_NAME
    # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    # mount

  • 快照 snapshot

lvcreate -L size [mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

4. 光盤(pán)設(shè)備和掛載

  • 光盤(pán)設(shè)備文件:
    IDE: /dev/hdc
    SATA: /dev/sr0

  • 符號(hào)鏈接文件:
    /dev/cdrom
    /dev/cdrw
    /dev/dvd
    /dev/dvdrw

# mount -r /dev/cdrom /media/cdrom # 只讀掛載
# umount /dev/cdrom

5. dd 命令

  • dd命令:convert and copy a file
    用法:
    # dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
    bs=#:block size, 復(fù)制單元大小
    count=#:復(fù)制多少個(gè)bs

  • 磁盤(pán)拷貝:
    # dd if=/dev/sda of=/dev/sdb

  • 備份MBR
    # dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

  • 破壞MBR中的bootloader:
    # dd if=/dev/zero of=/dev/sda bs=256 count=1

  • 兩個(gè)特殊設(shè)備:
    /dev/null: 數(shù)據(jù)黑洞;
    /dev/zero:吐零機(jī);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容