邏輯卷lvm 和btrs文件系統介紹


LVM揭祕



 lvm的中文叫邏輯卷,英文名字叫Logical Volume Manager,它有什麼作用?


通過邏輯卷LVM可以有效的管理和分配磁盤空間,可以把分散的小分區組合成一個大的卷組,從卷組中分出需要的空間做出邏輯卷,這樣使得磁盤擴容和縮減方便易用。還有着備份的功能,指的就是lvm快照。  



邏輯卷是怎麼來的?

dm: device mapper,將一個或多個底層塊設備組織成一個邏輯設備的模塊;注:dm是內核的功能模塊

/dev/dm-#   注:從0開始編號




這個邏輯設備的文件是什麼? 

/dev/mapper/VG_NAME-LV_NAME  舉例:/dev/mapper/vol0-root   注:邏輯卷的設備文件,標識一

或者

/dev/VG_NAME/LV_NAME    /dev/vol0/root    注:邏輯卷的設備文件,標識二      





怎樣創建lvm呢?


首先我們來了解一下PE 、VG、 LVM三者之間的關係。如下圖:

wKiom1b_fVjhl0LMAAdtJi8dEvM169.bmp 

注:物理卷pv組成卷組vg,而邏輯卷lvm在卷組vg上創建,大小不可以超過卷組。



怎樣創建pv?

    pvcreate /dev/DEVICE:   舉例:pvcreate /dev/sda{3,4,5}    創建pv

    pvs:簡要pv信息顯示

    pvdisplay:顯示pv的詳細信息



怎樣創建vg?

    vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath    創建vg

    vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]  擴展vg

    vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...  縮減vg

    vgs 簡要vg信息顯示

    vgdisplay 顯示vg的詳細信息

    vgremove VolumeGroupName  注:刪除某卷組


提出一個問題:如果你想把vg中的已存有數據的pv移除,該怎麼辦?

先做pvmove /dev/sda#   注:把pv的數據移動到其他pv,前提是剩下的pv有足夠的空間存儲轉移的數據

然後vgreduce VolumeGroupName /dev/sda# 注:從某卷組中刪除pv




怎樣創建lv?


   lvcreate -L #[mMgGtT] -n NAME VolumeGroup      注: -L:lv指定大小 -n:lv名字

   lvremove /dev/VG_NAME/LV_NAME  擴展lv          注:先擴展物理邊界,再擴展邏輯邊界

   lvs 簡要lv信息顯示

   lvdisplay 顯示lv的詳細信息



1、對了,你創建完lv後,它就如同一個塊設備。你需要創建文件系統,並掛載使用呢

舉例:mke2fs -t ext4 -b 1024 /dev/myvg/mylv

      mount /dev/myvg/mylv /mnt



2、當你發現自己的lv不夠用了,怎麼辦呢?別忘了它是可以伸縮的

擴展邏輯卷:

# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME   注:先擴展物理邊界

# resize2fs /dev/VG_NAME/LV_NAME                  注:再擴展邏輯邊界



3、當你某個lv空間要不了那麼大,你想縮減怎麼辦?

縮減邏輯卷:

# 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    再掛載使用  注意:縮減剩下的空間一定得能存儲你的現有的數據


 





你的數據如果想要更安全,就需要在lv上創建快照:snapshot

格式:

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

注:快照卷的大小要能裝下未來數據增長的空間






btrfs文件系統



Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW; 

ext3/ext4, xfs


核心特性:

1、多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以聯機“添加”、“移除”,“修改”;

2、寫時複製更新機制(CoW):複製、更新及替換指針,而非“就地”更新;

3、數據及元數據校驗碼:checksum

4、子卷:sub_volume

5、快照:支持快照的快照;

6、透明壓縮:


文件系統創建:

mkfs.btrfs

-L 'LABEL'

-d <type>: raid0, raid1, raid5, raid6, raid10, single      注:數據存儲跨多設備存儲機制

-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup 注:原數據跨多設備存儲機制

-O <feature>   特性

-O list-all: 列出支持的所有feature;

舉例:1、mkfs.btrfs -L mydata /dev/sda{b,c} 創建btrfs,多塊硬盤組成B-tree
      2、btrfs device add /dev/sdd /mydata   添加硬盤
      3、btrfs device delete /dev/sdd /mydata 移除硬盤,數據會自動轉移
      4、btrf balance start-dconvert=raid1  /mydata 硬盤要夠,不然不支持
      5、btrfs subrolume create /mydata/logs  創建子卷,logs就是子卷
      6、mount -o subvol=logs /dev/sdb /mnt 子卷掛載
        注意:父卷掛載,子卷就會被掛載。單獨掛載子卷,父卷看不到
      7、btrfs subvolume delete /mydata/logs  刪除子卷
      8、btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot
      也可以對文件做快照,利用了寫時複製的功能

     


屬性查看:

btrfs filesystem show 


掛載文件系統:

mount -t btrfs /dev/sdb MOUNT_POINT


透明壓縮機制:

mount -o compress={lzo|zlib} DEVICE MOUNT_POINT


子命令:filesystem, device, balance, subvolume




&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

練習1:創建一個至少有兩個PV組成的大小爲20G的名爲testvg的VG;要求PE大小爲16MB, 而後在卷組中創建大小爲5G的邏輯卷testlv;掛載至/users目錄;


練習2: 新建用戶archlinux,要求其家目錄爲/users/archlinux,而後su切換至archlinux用戶,複製/etc/pam.d目錄至自己的家目錄;


練習3:擴展testlv至7G,要求archlinux用戶的文件不能丟失;


練習4:收縮testlv至3G,要求archlinux用戶的文件不能丟失;


練習5:對testlv創建快照,並嘗試基於快照備份數據,驗正快照的功能;



文件系統掛載使用:

掛載光盤設備:

光盤設備文件:

IDE: /dev/hdc

SATA: /dev/sr0


符號鏈接文件:

/dev/cdrom

/dev/cdrw

/dev/dvd

/dev/dvdrw


mount -r /dev/cdrom /media/cdrom

umount /dev/cdrom


dd命令:convert and copy a file  底層複製命令

用法:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST 

bs=#:block size, 複製單元大小;

count=#:複製多少個bs;


磁盤拷貝:

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


兩個特殊設備:

/dev/null: 數據黑洞;

/dev/zero:吐零機;



dd: 複製



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章