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


LVM揭祕linux



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


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



邏輯卷是怎麼來的?app

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

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




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

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

或者blog

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





怎樣建立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的詳細信息



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

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

      mount /dev/myvg/mylv /mnt



二、當你發現本身的lv不夠用了,怎麼辦呢?別忘了它是能夠伸縮的

擴展邏輯卷:

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

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



三、當你某個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


核心特性:

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

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

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

四、子卷:sub_volume

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

六、透明壓縮:


文件系統建立:

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;

舉例:一、mkfs.btrfs -L mydata /dev/sda{b,c} 建立btrfs,多塊硬盤組成B-tree
      二、btrfs device add /dev/sdd /mydata   添加硬盤
      三、btrfs device delete /dev/sdd /mydata 移除硬盤,數據會自動轉移
      四、btrf balance start-dconvert=raid1  /mydata 硬盤要夠,否則不支持
      五、btrfs subrolume create /mydata/logs  建立子卷,logs就是子卷
      六、mount -o subvol=logs /dev/sdb /mnt 子卷掛載
        注意:父卷掛載,子卷就會被掛載。單獨掛載子卷,父卷看不到
      七、btrfs subvolume delete /mydata/logs  刪除子卷
      八、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: 複製

相關文章
相關標籤/搜索