高級文件系統管理2

邏輯卷管理器(LVM),允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小。允許在多個物理設備間重新組織文件系統。其步驟大體如下:將設備指定為物理卷,用一個或者多個物理卷來創建一個卷組,物理卷你是用固定大小的物理區域(PE)來定義的,在物理卷上創建的邏輯卷是由物理區域組成,可以在邏輯卷上創建文件系統。

一、知識整理

1、LVM設備名:dm-#

軟鏈接:/dev/mapper/VG_NAME-LV_NAME

/dev/mapper/vol0-root

/dev/VG_NAME/LV_NAME

/dev/vol0/root

2、結構簡圖:

blob.png

1、邏輯卷管理器快照:快照是特殊的邏輯卷,他是在生成快照時存在的邏輯卷的準確拷貝。快照只有在它們和原來的邏輯卷不同時才會消耗空間。

在生成快照時會分配給他一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間。當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中??煺罩兄缓性瓉淼倪壿嬀砀牡臄祿蛘咦陨煽煺蘸蟮目煺罩懈牡臄祿?。建立快照的卷大小只需要原始邏輯卷的百分之十五到二十就夠了。也可以使用lvextend放大快照。

由于快照區與原本的LV公用很多PE的區塊,因此快照區與被快照的LV必須要在同一個VG上,系統恢復的時候的文件數量不能高于快照區的實際容量。創建快照使用指定只讀特性避免操作錯誤,在快照內查看到的文件,若其沒有改變,則實則為lv中的原文件,相當于軟鏈接,但并不是軟鏈接,若發生改變,則為改變時刻之前的原文件,快照只備份創建當時的狀態,快照可以有多個?;?/span>COWcopy on write)寫時復制更新機制。

2、btrfs技術預覽版:(B-tree,Butter FS,Better FSGPL,Oracle,2007

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

寫時復制更新機制:復制更新及替換指針,而非就地更新。

數據及元數據校驗碼:checksum

子卷:sub_volume

快照:支持快照的快照

透明壓縮。

二、命令詳解及事例

1、PV管理工具:

pvs 簡要pv信息

pvdisplay 詳細pv信息

pvcreate /dev/DEVICE 創建pv

pvck  pv 檢測物理卷LVM元數據的一致性

-d 調試模式

-v 詳細信息模式

–labelsector 指定LVE卷標所在扇區,默認情況下物理卷前四個扇區保存著LVM卷標,可以使用該選項指定其他位置。

pvmove pv數據移動到其他pv

pvremove pv刪除

2、VG管理工具:

vgs 簡要vg信息

vgdisplay 詳細vg信息

vgcreate 創建vg

vgcreate 名稱 -s #chunk大小) 路徑

vgextended 擴展vg

vgreduce 縮減vg,在此命令之前先做pvmove

pvmove向下傳遞,指定當前vg中的空閑邏輯卷,若無空間則無法移動。

vgremove 刪除卷組,在此命令之前先做pvmove

3、LV管理工具:

lvs 簡要lv信息

lvdisplay 詳細lv信息

lvcreate 創建邏輯卷

lvcreate -L #(大小) -n NAME VG

lvremove /dev/VG_NAME/LV_NAME

重設文件系統大小

fsadm [] resize device [new_size[BKMG..]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

4、擴展邏輯卷:

lvextend -L [+]# /dev/VG_NAME/LV_NAME

resize2fs /dev/myvg/mylv  同步文件系統,只適合ext格式文件系統,擴展邏輯卷的時候使用。擴展xfs格式文件系統的命令為xfs_growfs。

df -lh查看大小變化

擴展邏輯卷使用lvextend -r -l +100%FREE /dev/vg0/lv0不需要resize2fs

小寫l為百分比或PE的個數,大寫為數值

縮減邏輯卷:縮減必須先取消掛載;

umount /dev/VG_NAME/LV_NAME

e2fsck -f /VG_NAME/LV_NAME

resize2fs /VG_NAME/LV_NAME 縮減文件系統

lvreduce -L [-]#  /VG_NAME/LV_NAME 縮減邏輯卷

mount

5、邏輯卷管理器快照

為現有邏輯卷創建快照:lvcreate -L # -s -n (指明名字)snap-data -p r (只讀) /dev/vg1/data

掛載快照:mkdir -p /mnt/snap

mount -o ro /dev/vg1/snap-data /mnt/snap

刪除快照umount /mnt/databackup

lvremove /dev/vg0/databackup

6、btrfs文件系統:

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 -f /dev/sdb /dev/sdc

屬性查看:btrfs filesystem showblkid

掛載文件系統:mount -t btrfs /dev/sdb MOUNT_POINT

透明壓縮機制:mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

在線修改文件系統大小:

btrfs filesystem resize -10G /mydata

btrfs filesystem resize +5G /mydata

btrfs filesystem resize max /mydata

查看:btrfs filesystem df /mydata

添加設備:btrfs devic add /dev/sdd /mydata

平衡數據:btrfs balance status /mydata顯示平衡過程

btrfs balance start /

btrfs balance pause /

btrfs balance cancel /

btrfs balance resume /

刪除設備:btrfs device delete /dev/sdb /mydata

修改raid的級別:注意raid對成員數量的要求

btrfs balance start -mconvert=raid1|0|5 /mydata 元數據組成

btrfs balance start -dconvert=raid1|0|5 /mydata 數據組成

btrfs子卷管理:

btrfs subvolume list /mydata

btrfs subvolume create /mydata/subv1

umount /mydata

moun -o subvo1=subv1 /dev/sdd /mnt/subv1

btrfs subvolume show /mnt/subv1

mount /dev/sdb /mydata 掛父卷,子卷自動掛載

mount -o subvolid=### /dev/sdd /mnt/subv1

btrfs subvolume show /mnt/subv1

btrfs subvolume delete /mydata/subv1

創建快照:btrfs subvolume snapshot /mydata/subv1 /mydata/snapshot_subv1

btrfs subvolume list /mydata

刪除快照:

btrfs subvolume delete /mydata/snapshot_subv1

對一個文件做快照(當前卷):

cd /mydata/subv1

cp –reflink testfile snapshot_testfile

轉化ext4btrfs

btrfs-convert /devsdd1

btrfs fikesystem show

轉化btrfsext4

umount

btrfs-convert -r /dev/sdd1 回滾-r

二、課后練習

1、

[root@localhost ~]# pvcreate /dev/sdc1
WARNING: ext4 signature detected on /dev/sdc1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdc1.
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvcreate /dev/sdc2
  Physical volume "/dev/sdc2" successfully created
[root@localhost ~]# vgcreate -s 16M  vg1 /dev/sdc{1,2}
  Volume group "vg0" successfully created
[root@localhost ~]# cd /
[root@localhost /]# mkdir users
[root@localhost /]# useradd -d /users/archlinux  archlinux
[root@localhost users]# lvcreate -n testlv -L 5G /dev/vg1
  Logical volume "testlv" created.
[root@localhost users]# mke2fs -t ext4 /dev/vg1/testlv 
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成                            
正在寫入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: mo^H完成
[root@localhost users]# mount /dev/vg1/testlv /users/
[root@localhost users]# lvextend -L +2G /dev/vg1/testlv 
  Size of logical volume vg1/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
  Logical volume testlv successfully resized.
[root@localhost users]# umount /users/
[root@localhost users]# resize2fs  /dev/vg1/testlv 3G
resize2fs 1.42.9 (28-Dec-2013)
請先運行 'e2fsck -f /dev/vg1/testlv'.
[root@localhost users]# e2fsck -f /dev/vg1/testlv
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg1/testlv: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks
[root@localhost users]# resize2fs  /dev/vg1/testlv 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/testlv to 786432 (4k) blocks.
The filesystem on /dev/vg1/testlv is now 786432 blocks long.
[root@localhost users]# lvreduce -L 3G /dev/vg1/testlv 
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y
  Size of logical volume vg1/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
  Logical volume testlv successfully resized.
[root@localhost users]# mount /dev/vg1/testlv /users/
[root@localhost users]# lvcreate -p r -L 200M -n snap1 -s /dev/vg1/testlv
  Rounding up size to full physical extent 208.00 MiB
  Logical volume "snap1" created.
[root@localhost users]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  120G  0 disk 
├─sda1                8:1    0  300M  0 part /boot
├─sda2                8:2    0 20.5G  0 part 
│ ├─centos-root     253:0    0  9.3G  0 lvm  /
│ ├─centos-swap     253:1    0  1.9G  0 lvm  [SWAP]
│ └─centos-var      253:2    0  9.3G  0 lvm  /var
└─sda3                8:3    0   10G  0 part /testdir
sdb                   8:16   0   20G  0 disk 
├─sdb1                8:17   0    5G  0 part /mydata
├─sdb2                8:18   0    5G  0 part 
└─sdb3                8:19   0    5G  0 part 
sdc                   8:32   0   20G  0 disk 
├─sdc1                8:33   0   10G  0 part 
│ ├─vg1-testlv-real 253:4    0    3G  0 lvm  
│ │ ├─vg1-testlv    253:3    0    3G  0 lvm  /users
│ │ └─vg1-snap1     253:6    0    3G  1 lvm  
│ └─vg1-snap1-cow   253:5    0  208M  1 lvm  
│   └─vg1-snap1     253:6    0    3G  1 lvm  
└─sdc2                8:34   0   10G  0 part 
sdd                   8:48   0   20G  0 disk 
sr0                  11:0    1  7.2G  0 rom  /media/cdrom

原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/45649

(0)
SilencePavilionSilencePavilion
上一篇 2016-09-13
下一篇 2016-09-13

相關推薦

  • bash腳本之數組及字符串切片,登陸配置文件

    一,概述 數組(就是一堆變量的集合) 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合/ 數組名和索引     索引:編號從0開始,屬于數值索引     注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0版本之后…

    Linux干貨 2016-09-01
  • linux 基礎(8)—— 變量

    變量:命名的內存空間 1.作用:①數據存儲格式                         ②參與的運算                 &nbs…

    2017-08-05
  • 第二天作業

    1、echo 查閃爍,下劃,顏色    echo -e "\033[31;5;1m*******\033[0m\n \033[32;5;1m*****\033[0m\n  \033[33;5;1m***\033[0m\n   \033[34;5;1m*\033[0m" 2、scr…

    Linux干貨 2016-07-26
  • shell編寫的linux命令練習工具

    linux常用命令加選項,有成百上個,僅僅靠背誦忘記得太快,所以寫了此腳本,便于對linux命令的練習,希望能幫助到大家。 運行腳本效果如下: 上邊兩圖一個是運行腳本時的截圖,另一個為題庫的格式(@做分隔符,所以如果題目中有@一定要替換掉) 下面附上源碼 #!/bin/bash#版本號:1.0 #作者:Mr.L #WX:504498722FILE=/root…

    2017-03-19
  • iptables實驗2

    IPTABLES   實驗2       實驗大體結構圖       相關概念及公式 源地址轉換:    SNAT   POSTROUTING 目標地址轉換:DNAT  PREROUTING   每次重啟網絡后…

    Linux干貨 2016-10-24
欧美性久久久久