系統管理之磁盤管理(二)磁盤配額,RAID,LVM

上篇博文給大家介紹了磁盤和文件系統的基礎知識,也是最基本的使用.在實際生產環境中,對于磁盤的使用,要求穩定,靈活,那么下面給大家分享下磁盤的高級用法.磁盤配額,RAID,LVM等相關知識.

1.磁盤配額
2.磁盤RAID
3.LVM

一.磁盤配額

1.概述:

? 在內核中執行
? 以文件系統為單位啟用
? 對不同組或者用戶的策略不同
    根據塊或者節點進行限制
    ? 執行軟限制( soft limit)
    ? 硬限制( hard limit)

Linux是多用戶的操作系統,同一時間可能有多個用戶登錄到系統上進行相關操作,用戶在操作的時候,可能會寫入很多數據,占用大量磁盤空間,導致其他用戶想寫數據的時候,沒有磁盤空間可用,如何限定某個用戶對磁盤的使用空間大小,以及可使用的inode多少,也就是限定可創建多少個文件,這就是磁盤配額管理的作用。

磁盤配額管理的是針對一個獨立的分區文件系統進行管理,不能跨分區,如果我們希望對某個目錄進行磁盤配額管理,則需要將該目錄單獨掛載至某個獨立的分區

2.初始化

? 分區掛載選項: usrquota、 grpquota
        修改完/etc/fstab,必須重新掛載分區
? 初始化數據庫: quotacheck
        quotacheck -cu|-cg|-cug  /DIR

    針對某個分區的掛載目錄初始化quota數據庫,可以針對用戶創建、針對組創建、或者兩個都創建,看第一步掛載選項啟用的那些都創建那些

     初始化數據塊后,會在被執行磁盤配額的目錄下生成相關的數據庫文件,該文件無法通過vi等編輯器查看

3.執行

? 開啟或者取消配額: quotaon、 quotaoff
      quotaon -p  /DIR  查看某目錄磁盤配額是否啟用
? 直接編輯配額文件: edquota username
        根據現有用戶的配置來設置別的用戶
        edquota -p USER1  USER2  根據user1設置user2
? 在shell命令行中直接編輯:
    setquota usename 4096 5120 40 50 /foo
? 定義原始標準用戶
    edquota -p user1 user2

4.報告數據配額

報告
? 用戶調查: quota USERNAME  查看某用戶配額信息
? 配額概述: repquota /DIR 查看掛載點的整體配額信息
? 其它工具: warnquota

5.操作:

1.備份/home文件

    cp -r /home/* /tmp/home/

2.在/etc/fstab中指定掛載分區的掛載選項(usrquota,grpquota)

    [fedora@w7 ~]$ cat /etc/fstab 
    /dev/sdc1                 /home        ext4    usrquota,grpquota    0 0

3.掛載分區并移會home文件

    mount -a
    df -h
    mv /tmp/home/* /home
    ll /home

4.創建配額數據庫

    setenforce 0   (centos6必須關閉SELINUX)
    quotacheck -cug /home(掛載分區)

    [root@w7 ~]# ll /home/
    total 48
    -rw-------  1 root   root    7168 Aug 31 01:11 aquota.group
    -rw-------  1 root   root    7168 Aug 31 01:11 aquota.user
    drwx------. 4 centos centos  4096 Jul 31 04:19 centos

5.啟動數據庫

    quotaon -p /home/ 查看是否啟用數據庫
        [root@w7 ~]# quotaon -p /home/
        group quota on /home (/dev/sda4) is off
        user quota on /home (/dev/sda4) is off

    quotaon    /home/    啟用數據庫
        [root@w7 ~]# quotaon  /home/
        [root@w7 ~]# quotaon -p /home/
        group quota on /home (/dev/sda4) is on
        user quota on /home (/dev/sda4) is on

6.配置配額項

   1.edquota fedora           數據庫配額    
      Filesystem    blocks       soft     hard        inodes         soft  hard
     /dev/sda4   44(當前字節) 100(警告字節)100(最大字節) 11(當前文件數)2(警告文件數 0(最大文件數)

   2. edquota -p fedora wen    復制數據庫配額給其他用戶

   3.setquota fedora 100000 150000 0 0 /home/    命令行配額
    [root@w7 home]# setquota centos 10000 50000 2 3 /home

7.查看使用情況

    repquota /home/
        [root@w7 ~]# repquota /home/
        *** Report for user quotas on device /dev/sda4
        Block grace time: 7days; Inode grace time: 7days
                                Block limits                File limits
        User            used    soft    hard  grace    used  soft  hard  grace
        ----------------------------------------------------------------------
        root      --      20       0       0              2     0     0       
        wen       -+      40     100     200             10     2     0  6days
        centos    --      44       0       0             11     0     0       
        fedora    -+      44     100     200             11     2     0  6days
        hodoop    --      16       0       0              4     0     0

8.測試

[root@w7 home]# su - centos
[centos@w7 ~]$ dd if=/dev/zero of=./test1 bs=1 count=34000
34000+0 records in
34000+0 records out
34000 bytes (34 kB) copied, 0.0592565 s, 574 kB/s
[centos@w7 ~]$ dd if=/dev/zero of=./test2 bs=1 count=34000
dd: failed to open ‘./test2’: Disk quota exceeded
[centos@w7 ~]$ dd if=/dev/zero of=./test3 bs=1 count=34000
dd: failed to open ‘./test3’: Disk quota exceeded

二.磁盤RAID

1.概論:

RAID:(Redundant Arrays of (Inexpensive)Independent Disks)
     廉價冗余磁盤陣列,獨立冗余磁盤陣列
多個磁盤合成一個"陣列"來提供更高的性能,冗余,或者兩種兼備

使用環境:在早先的生產環境中,磁盤的生產能力很差,IO能力弱.一塊磁盤出現故障,整個設備就會停止工作.

出現地點:1988年由加利福尼亞大學伯克利分校( University ofCalifornia-Berkeley) “ A Case for Redundant Arrays of Inexpensive Disks”。

結合內核中的md(multi devices)模塊實現

作用:
    提高IO能力:
        磁盤并行讀寫
    提高耐用性:
        磁盤冗余來實現

實現方式:
    外接式磁盤陣列:通過擴展卡提供適配能力  創建操作系統后,手工命令創建RAID
    內嵌式RAID:主板集成RAID控制器 安裝操作系統前,提前規劃,在硬件上創建RAID

級別:多塊磁盤組織在一起的工作方式有所不同,級別僅代表磁盤的組織方式,不代表先進性
    RAID-0: 條帶卷,strip;
    RAID-1: 鏡像卷,mirror;    
    RAID-2:
    RAID-3:
    RAID-4:
    RAID-5:
    RAID-6:
    RAID-10:
    RAID-01:

注意:即使做RAID,也要做數據備份,raid,只是作用于磁盤損壞,而不導致業務中斷的場景,不代表數據一定安全.

2.級別描述

單類型:

RAID-0:無差錯控制的帶區組

  
描述:把多塊磁盤平行組織起來當成一塊硬盤實現IO并行組織的磁盤組織結構
工作機制:數據流通過控制器,控制器把數據切割成多塊chunk(跟文件系統的塊不同),分散到不同的磁盤(chunk按順序寫入不同的磁盤)
優勢:
讀寫性能提升(速度最快)
可用空間:N*min(s1,s2) 磁盤個數乘每個磁盤的最小空間
缺點:無容錯能力,耐用性下降(如果一個磁盤(物理)損壞,則所有的數據都無法使用)
限制:最少磁盤數2個
適用場景:臨時數據 (決不能當存儲設備的陣列)
系統管理之磁盤管理(二)磁盤配額,RAID,LVM

 RAID-1:
    描述:把數據同時分別完整存儲到不同磁盤上,數據備份兩份或多份
    工作機制:數據流通過控制器,控制器把數據切割成多塊chunk(跟文件系統的塊不同),把每個數據塊同時分別存儲到不同的磁盤,互為備份.
    優勢:
        讀性能提升(可以交叉讀),寫性能略下降
        雙磁盤支持熱替換,安全性最高
    缺點:有容錯能力,耐用性下降
        數據同步,刪除創建同步
        可用空間:磁盤總容量的一半,使用率最低
    限制:最少磁盤數:2個
    適用場景:重要數據

系統管理之磁盤管理(二)磁盤配額,RAID,LVM

RAID-4:

    描述:
    工作機制:將至少三塊磁盤組成RAID,將第一塊存儲校驗碼,其他磁盤存儲數據,把數據流分成塊,數據塊分別存儲在數據磁盤,第一塊校驗碼盤存放第二,第三塊盤的通過異或運算得到的數據.當數據盤的數據損壞,可通過剩余的盤與校驗碼盤計算,得到損失的數據(在恢復過程中,又造成數據損壞,則數據不可逆,永遠無法恢復)
    異或運算(一組數據丟失,可通過跟校驗位比對,得出丟失的數據,兩組數組都丟失,過程不可逆,校驗碼丟失,沒影響; 在恢復數據過程中,大量占用系統IO):    
        110(數據)
        101 (數據)   
        011(校驗碼)
    優勢:
        讀性能提升(可以交叉讀),寫性能略下降
        可用空間:(n-1)*min(s1,s2) 磁盤個數減一乘每個磁盤的最小空間
    缺點:
        有容錯能力
        校驗盤讀寫壓力大,成為性能瓶頸
    限制:最少磁盤數:3個
    適用場景:臨時數據

系統管理之磁盤管理(二)磁盤配額,RAID,LVM

 RAID-5(中小企業使用最多):分布式奇偶校驗的獨立磁盤結構

    描述:校驗機制
    工作機制:與RAID4集中校驗機制相比,RAID5的區別為是輪流校驗的機制.數據塊交替存在每個磁盤,校驗位交替存放在每個磁盤每,每個盤都是數據盤,每個盤都是校驗盤,有spare硬盤,若有硬盤損壞,空閑硬盤自動工作
    優勢:
        讀寫性能提升(讀很高,寫一般)
        可用空間:(N-1)*min(s1,s2) 磁盤個數乘每個磁盤的最小空間
    缺點:
        有容錯能力, 允許1塊磁盤出錯    
        有寫損失,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息
    限制:最少磁盤數:3個

系統管理之磁盤管理(二)磁盤配額,RAID,LVM

  RAID-6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結構

    描述:校驗機制
    工作機制:與RAID4集中校驗機制相比,RAID5的區別為是輪流校驗的機制.前兩個數據塊交替存儲在數據盤,每第三,四塊盤做校驗盤,校驗碼存兩遍,
    優勢:
        數據絕不可能出錯
        可用空間:(N-2)*min(s1,s2) (磁盤個數-2)乘每個磁盤的最小空間
    缺點:
        有容錯能力, 2塊磁盤    
        寫性能不好,造價高        
    限制:最少磁盤數:4個
    適用場景:重要數據

系統管理之磁盤管理(二)磁盤配額,RAID,LVM

  RAID-7: 優化的高速數據傳送磁盤結構

  RAID7所有的I/O傳送均是同步進行的,可以分別控制,這樣提高了系統的并行性,提高系統訪問數據的速度;每個磁盤都帶有高速緩沖
  存儲器,實時操作系統可以使用任何實時操作芯片,達到不同實時系統的需要。允許使用SNMP協議進行管理和監視,可以對校驗區指定獨
  立的傳送信道以提高效率??梢赃B接多臺主機,因為加入高速緩沖存儲器,當多用戶訪問  系 統時,訪問時間幾乎接近于0。由于采用并行結
  構,因此數據訪問效率大大提高。需要注意的是它引入了一個高速緩沖存儲器,這有利有弊,因為一旦系統斷電,在高速緩沖存儲器內的數
  據就會全部丟失,因此需要和UPS一起工作。當然了,這么快的東西,價格也非常昂貴。

混合型:

RAID-10:(最合理)高可靠性與高效磁盤結構
    描述:兩兩或更多先做RAID1鏡像卷,再把多個鏡像卷做RAID0
    工作機制:先把數據流分別完整存儲到兩個鏡像盤上,數據備份兩份;再把RAID1的鏡像卷,合并為RAID0
    優勢:
        讀寫性能提升
        可用空間:N*min(s1,s2)/2 
        容錯性更強
    缺點:
        有容錯能力, 每組鏡像卷最多壞一塊,一組鏡像卷壞,整個raid破壞            
    限制:最少磁盤數:4個
    適用場景:重要數據

RAID-01:
    描述:兩兩或更多先做RAID0條帶卷,再把多個條帶卷做RAID1鏡像卷
    工作機制:把RAID0和RAID1技術結合起來,即RAID0+1。數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗余能力,允許一個以下磁盤故障,而不影響數據可用性,并具有快速讀/寫能力。要求至少4個硬盤才能作成RAID0+1。
    優勢:
        讀寫性能提升
        可用空間:50%
        容錯性稍弱
    缺點:
        有容錯能力, 1塊磁盤            
    限制:最少磁盤數:4個
    適用場景:臨重要數據適用場景:臨重要數據
RAID-50

JBOD:Just a Bunch of Disks

JBOD通常又稱為Span。它是在邏輯上將幾個物理磁盤一個接一個連起來, 組成一個大的邏輯磁盤。JBOD不提供容錯,該陣列的容量等于
組成Span的所有磁盤的容量的總和。JBOD嚴格意義上說,不屬于RAID的范圍。不過現在很多IDE RAID控制芯片都帶著種模式,JBOD就是
簡單的硬盤容量疊加,但系統處理時并沒有采用并行的方式,寫入數據的時候就是先寫的一塊硬盤,寫滿了再寫第二塊硬盤……
 不屬于RAID的范疇
 功能:將多塊磁盤的空間合并一個大的連續空間使用;
 可用空間:sum(s1,s2...)

常見級別:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

3.實現方式(centos上的軟RAID實現)

mdadm:模式化工具
如命令不能使用,則yum安裝mdadm

命令語法:mdadm [mode] <raiddevices> [options] <component-devices>
    支持的RAID級別:LINEAR,RAID0,RAID1,RAID4,RIAD5,RAID6,RAID10
    <raiddevices> :/dev/md#
    <component-devices>:任意塊設備
    [options]:
        模式:
            創建:創建RAID設備   -C
                -n #: 使用#個塊設備來創建次RAID
                -l:指明要創建的RAID的級別
                -a {yes|no}:表示是否自動創建目標RAID設備的設備文件
                -c CHUNK_SIZE:指明塊大小
                -x #:指明空閑盤的個數(沒有冗余能力的RAID,此選項沒用)

            裝配:raid后,當某一磁盤損壞或拿掉后,掃描raid原有的元數據,重新裝配成原來的raid  -A
            監控:    -F
            管理:    -f ,-r,-a

                -f:標記指定磁盤為損壞
                -a:添加磁盤
                -r:移除磁盤
            刪除: -S
            顯示RAID詳細信息: -D    
                mdadm -D /dev/md#

    觀察md的狀態:
    (創建RAID后查看,必須等文件中的進度條走完,才能實現其他功能,進度條代表生成RAID的過程)
        [root@w7 home]# cat /proc/mdstat
        配合watch -n1 顯示實時查看
        watch命令:
            -n #:刷新間隔,單位是秒
            watch -n# 'COMMEND'

軟RAID配置實例

fdisk創建分區,修改類型為fd(實際生產過程中,使用整塊磁盤)

  • 使用mdadm創建并定義RAID設備
      mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

  • 用文件系統對每個RAID設備進行格式化
      mke2fs -t ext4 /dev/md0

  • 測試RAID設備

  • mdadm允許檢查RAID設備的狀況
     mdadm –detail|D /dev/md0

  • 查看RAID的配置文件
     cat /proc/mdstat

  • 增加新的成員
     mdadm –G /dev/md0 –n4 -a /dev/sdf1

軟RAID的刪除:

  • umount /掛載點

  • mdadm -S /dev/md#

  • rf -f /etc/mdadm.conf

  • fdisk /dev/sd#

  • mdadm —

  • mdadm -zero-superblock /dev/sd[a-z]#

軟RAID測試和修復

  • 模擬磁盤故障(標記某磁盤為損壞磁盤,此步驟必須在/proc/mdstat文件進度條生成后)
    mdadm /dev/md0 -f /dev/sda1

  • 移除磁盤
    mdadm /dev/md0 –r /dev/sda1

  • 從軟件RAID磁盤修復磁盤故障

  • 替換出故障的磁盤然后開機

  • 在備用驅動器上重建分區

  • mdadm /dev/md0 -a /dev/sda1

  • mdadm、 /proc/mdstat及系統日志信息

軟RAID管理:

  • 生成配置文件(很重要,否則開機找不到raid):

  • mdadm -D -s >/etc/mdadm.conf

  • 停止md設備:

  • mdadm -S /dev/md#

  • 激活md設備

  • mdadm -A -s /dev/md#

  • 刪除RAID信息:

  • mdadm -zero-superblock /dev/sd[a-z]#

4.實戰

1:創建一個10G可用空閑的RAID5;

[root@w7 ~]# mdadm -C /dev/md1 -a yes -n 2 -x 1 -l 5 /dev/sdb{2,3,4}
-C 創建raid,-a 創建設備文件 -n指明使用#個磁盤做數據盤 -x 空閑盤為#個 -l指明RAID級別

mdadm: /dev/sdb4 appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 08:00:00 1970
mdadm: partition table exists on /dev/sdb4 but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

[root@w7 ~]# cat /proc/mdstat 查看raid的映射文件

Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sdb3[3] sdb4[2](S) sdb2[0]
      5238784 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      [====>................]  recovery = 21.7% (1139712/5238784) finish=0.9min speed=71232K/sec

unused devices: <none>

[root@w7 ~]# mke2fs -t ext4 /dev/md1 給RAID里的所有磁盤生成文件系統

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)

[root@w7 ~]# mount /dev/md1 /mnt 掛載RAID
[root@w7 ~]# mount 查看掛載情況

/dev/md1 on /mnt type ext4 (rw,relatime,stripe=128,data=ordered)

[root@w7 ~]# df -lh 查看RAID的磁盤大小

/dev/md1        4.8G   20M  4.6G   1% /mnt

[root@w7 ~]# blkid /dev/md1 使用UUID設置自動掛載,重啟機器后會改變設備名,寫入/etc/fstab

/dev/md1: UUID="ceadea35-a6e2-4763-ac62-86c323f27c2c" TYPE="ext4"

[root@w7 ~]# mdadm -Ds /dev/md1 > /etc/mdadm.conf 生成配置文件(很重要)

mdadm -S /dev/md0 停止raid

mdadm -A /dev/md0 啟動raid

2.設置損壞

[root@w7 ~]# mdadm -D /dev/md1 查看RAID狀態

/dev/md1:
Version : 1.2
Creation Time : Fri Aug 26 21:01:52 201
Raid Level : raid5
Array Size : 5238784 (5.00 GiB 5.36 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Fri Aug 26 21:03:55 2016
State : clean 
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Name : w7.2-b-214:1  (local to host w7.2-b-214)
UUID : 254cfe33:b02cd9ac:464bc6a1:605f6422
Events : 18

Number   Major   Minor   RaidDevice State
0       8       18        0      active sync   /dev/sdb2
3       8       19        1      active sync   /dev/sdb3

2       8       20        -      spare   /dev/sdb4

[root@w7 ~]# mdadm /dev/md1 -f /dev/sdb 編輯一塊磁盤為損壞
[root@w7 ~]# mdadm -D /dev/md1 再次查看信息

 Number   Major   Minor   RaidDevice State
 3       8       64        0      spare rebuilding  /dev/sde
 1       8       32        1      active sync   /dev/sdc
 4       8       48        2      active sync   /dev/sdd

 0       8       16        -      faulty   /dev/sdb


原來空閑磁盤自動工作,標記損壞的磁盤自動到空閑位

[root@w7 ~]#mdadm /dev/md0 -r /dev/sdf1 刪除成員
[root@w7 ~]#mdadm /dev/md0 -a /dev/sdf1 增加
[root@w7 ~]#mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成員

3.刪除RAID,恢復磁盤

umount //mnt 從掛載點卸載raid
mdadm -S /dev/md1 停止RAID
rf -f /etc/mdadm.conf 刪除RAID的配置文件
fdisk /dev/sd# 整理磁盤的分區(整個磁盤做RAID,此部可省)
mdadm -zero-superblock /dev/sd[a-z]# 把每個做raid的磁盤都從RAID移除

4.創建一個可用空間為10G的RAID1設備,要求其chumk大小為128k,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄

mdadm -C /dev/md4 -n 2  -l 1 -a yes -b 128 /dev/sdc1 /dev/sdc2
lsblk 
mdadm -D /dev/md4
mke2fs -t ext4 /dev/md4

5.創建一個可用空間為10G的RAID10設備,要求其chumk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄

mdadm -C /dev/md2 -n 2  -l 1 -a yes -c 128 /dev/sdc{1,2}
mdadm -C /dev/md3 -n 2  -l 1 -a yes -c 128 /dev/sdd{1,2}
lsblk
mdadm -C /dev/md4 -n 2  -l 0 -a yes  /dev/md{2,3}
lsblk 
cat /proc/mdstat 
mdadm -D /dev/md4
mdadm  /dev/md3 -r /dev/sdd1
mdadm  /dev/md3 -f /dev/sdd1
mdadm -D /dev/md3

系統管理之磁盤管理(二)磁盤配額,RAID,LVM
創建一個可用空間為10G的RAID01設備,要求其chumk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄

 mdadm -C /dev/md5 -n 2  -l 0 -a yes  /dev/sdc{3,4}
 1071  mdadm -C /dev/md6 -n 2  -l 0 -a yes  /dev/sdd{3,4}
 1072  mdadm -C /dev/md7 -n 2  -l 1 -a yes -b 128 /dev/md5 /dev/md6
 1073  ls
 1074  lsblk 
 1075  mke2fs -t ext4 /dev/md4
 1076  mke2fs -t ext4 /dev/md7
 1077  mount /dev/md7 /mnt
 1078  cd /mnt
 1079  ls
 1080  df -lh
 1081  madam -D /dev/md7

系統管理之磁盤管理(二)磁盤配額,RAID,LVM

三.LVM(邏輯卷)管理器

1.概論

什么是LVM?

LVM是邏輯盤卷管理(LogicalVolumeManager 2)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制.LVM是建立在硬盤和
分區之上的一個邏輯層,用來提高磁盤分區管理的靈活性。系統管理員可以通過LVM輕松的管理磁盤分區,如:將若干個磁盤分區或
物理磁盤連接為一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolume
s),并進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,并且可以對磁盤存儲按照組的方式進
行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。相對于
普通的磁盤分區有很大的靈活性,使用普通的磁盤分區,當一個磁盤的分區空間不夠使用的時候,可能就會帶來很大的麻煩,而使
用LVM可以很靈活的調整分區的大小并且數據不受影響。

原理:把底層磁盤創建成PV,pv加入到VG group,在VG中拉出一塊空間,創建LV

作用:使用軟件的方式,組織一個或多個底層硬件的設備,成為一個抽象的邏輯設備


底層硬盤設備(分區,RAID),可以創建為PV(物理卷,可以存放元數據),pv可以把底層提供的存儲空間抽象為一個一個獨立的存儲單元,合
并在一個高級的單位,卷組VG,可以包含多個物理卷,VG的空間就是物理卷的空間,可以將一個或多個的物理設備(PV)組成一個邏輯設備(V
G,類似擴展分區,不能被格式化直接使用).在VG上創建LV,每個LV都是獨立的文件系統,可以格式化和使用,可以使用卷組內的任意可用空
間大小,可以跨多個VG多個pv組成一個VG,VG在邏輯層次上把1個或多個PV組成的存儲空間,劃分為固定大小的塊(PE,物理盤區)pv加入到
VG后才有PE的存在,不同VG對PE的定義不同VG層次上,不管是來自哪的空間,都會被識別為一個一個的PE,VG創建LV的過程,就是指定特定
數量的PE來組成邏輯存儲空間的過程,邏輯卷lv的大小可以動態擴大或收縮,而不危害里面的數據.VG和LV都可以動態添加或縮小,保障存
儲空間的收縮性,但是在軟件層次上實現,一旦數據損壞,很難恢復

使用模塊:

dm模塊(device mapper) 設備映射組件,將一個或多個底層塊設備組織成一個邏輯設備的模塊;

優缺點:

優點:

LVM的重點在與可以彈性的調整文件系統的容量,當實際場景中,我們如果使用普通的分區后,基本該分區的容量就已經固定,比如linux
的/home分區由于用戶存儲的數據太多,導致/home分區的容量不夠,我們需要把/home分區的數據拷貝到別的地方,掛載一塊大分區上去
,才可以完成/home的擴容,步驟比較繁瑣。

由于LVM可以動態在線調整分區大小,我們直接通過LVM給/home分區擴容。如果有其它分區太大而浪費空間,我們還可以在線的縮小容量。

LVM還支持快照,在不中斷業務的情況下,對數據做完整備份。

缺點:

LVM是基于操作系統之上,若由于程序問題導致數據丟失,或LVM的損壞,數據恢復比較麻煩。

注意事項:

1.PV在移除時,必須滿足:
    其他PV具有承載LV大小的空間
    pv上有數據時,必須把數據搬移到其他的PV上

2.lv的縮減相當危險,縮減不能在線進行,縮減lv要先卸載,先縮減邏輯邊界,也就是文件系統邊界,再縮減物理邊界,也就是lv)縮減
LV有丟失數據風險,需要謹慎

設備文件:

    /dev/dm-#

   有兩個符號鏈接:
    /dev/mapper/VG_name-LV_name  (/dev/mapper/voL0-root)
    /dev/VG_NAME/LV_NAME(/dev/voL0/root)

基本術語

PV(物理卷,Physical Volume):指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但
和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。如果是磁盤分區創建PV,必須更改分區類型為LVM

VG(卷組,Volume Group):由多個物理卷組成,類似于非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成??梢栽诰斫M上創
建一個或多個“LVM分區”(邏輯卷)

LV(邏輯卷,Logical Volume):類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統;
每個LV都是獨立的文件系統,可以格式化和使用,可以使用卷組內的任意可用空間大小,可以跨多個VG

PE(物理塊,Physical Extent):每一個物理卷PV被劃分成為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被
LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成.PE被分配給邏輯卷使用后,
就會變成LE(邏輯盤區)

LE(邏輯塊,Logical Extent):邏輯卷LV也被劃分為可被尋址的基本單位,稱為LE。在同一個卷組中,LE的大小和PE是相同的,
并且一一對應

PV、VG、LV三者之間是有一定邏輯關系的,LVM是將一些零碎的磁盤分區(PV)合并成一個較大的磁盤(VG),然后在根據需要對這個
較大的磁盤(VG)進行劃分成不同的小分區(LV),并且這些小分區(LV)是可以動態的擴展或縮小的。而PE是PV的基本組成單元,LE
是LV的基本組成單元。

系統管理之磁盤管理(二)磁盤配額,RAID,LVM
系統管理之磁盤管理(二)磁盤配額,RAID,LVM

以上為一個簡單模型:

PV:物理磁盤,LVM是建立在物理磁盤上面的,增加物理磁盤可以擴展上層分區的大小。

VG:卷組,可以包含一個或多個物理卷。

LV:邏輯卷,從VG上分出可以實際存儲數據的分區,建立文件系統

PE:VG上最小的塊大小單元。

2.管理LVM命令

三類命令
1、管理物理卷的命令,命令開頭是pv

pvs   顯示pv分區的簡要信息,包括硬盤分區名稱、PV名稱、空間問題及空閑量
pvcreate 把硬盤分區轉換成PV  創建物理卷
    pvcreate [選項] [硬盤分區]
       選項:
          -f:強制創建物理卷,不需要用戶確認; 
          -u:指定設備的UUID; 
          -y:所有的問題都回答“yes”; 
          -Z:是否利用前4個扇區。
 pvdisplay 顯示PV的詳細信息
 pvscan 掃描系統中的pv
 pvremove 刪除pv
    pvmove [選項] [pv_name....]
       選項:
           -f 強制刪除,不提示
           -y 對提示的內容,自動輸入yes
 pvchange 改變pv的物理屬性
    pvchange [選項] [pv_name]
       選項:
          -u 為指定的PV_NAME隨便生成UUID
 pvck 檢查PV的元數據
 pvresize 調整PV的容量大小 
    pvresize [選項] [pv_name]
        --setphysicalvolumesize <容量大小> 指定修改PV的空間大小 
        pvresize /dev/sda4 自動把/dev/sda4的空間大小調整為磁盤分區的最大值
        pvresize --setphysicalvolumszise 50G /dev/sda4 把/dev/sda4的空間大小調整為50G    
 pvmove 把源PV的上數據移動到目標pv上
     vmove [選項] [源PV] [目標PV1.......]
        pvmove /dev/sda4 /dev/sda5 把/dev/sda4的數據移動到/dev/sda5

2、管理卷組的命令,命令開頭是vg

vgs  顯示vg分區的簡要信息,包括硬盤分區名稱、PV名稱、空間問題及空閑量
 vgdisplay 顯示vg的詳細信息
 vgcreate 創建VG
     vgcreate [選項] [vg_name] [pv_name.....]
        -l:卷組上允許創建的最大邏輯卷數,即PV數量; 
           -p:卷組中允許添加的最大物理卷數;
           -s:卷組上的物理卷的PE大小,即PV數量。
vgextend  添加PV到VG中
      vgextend [選項] [vg_name] [pv_name]
        -d 使用調試模式
        -t 測試使用
            -f 強制擴展
        -v 顯示詳細信息    
vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] #移除VG中的一個PV ,前提是移動數據
vgremove VG_NAME  #刪除vg組,要先把mount取消掉
vgscan [PhysicalDevicePath] 掃描系統中的VG

3、管理邏輯卷的命令,命令開頭是lv

lvs 查看
lvdisplay 查看詳細信息
lvcreate 創建lv
lvscan   掃描LV
lvcreate [選項] [vc_name]
     -L -L #K|M|G 指定創建的邏輯卷的大小
     -l 通過指定VC的PE數量,來確定VC的空間大小
     -n 指定vc的名稱 
lvremove 刪除lv,先要卸載mount
lvremove [選項] [lv_name]
擴展邏輯卷:
     #注意:在 lvexten擴展完成后,直接操作mount,會發現擴展的空量沒有直接應用到文件系統中,需要執行一次 resize2fs #
    lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME      不帶加號是擴展到#  帶加號是擴展#
    resize2fs /dev/VG_NAME/LV_NAME         重新加載文件系統(擴大邏輯邊界)
縮減邏輯卷:
    umount /dev/VG_NAME/LV_NAME   #縮減必須先umount
    e2fsck -f /dev/VG_NAME/LV_NAME  #文件系統強制檢測及修復
    resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] #指定文件系統縮減到大多的空間
    lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME  #指定LV的縮減到多大的空間
    mount #掛載

3.實戰

一、創建1個10G的pv
1、準備三個磁盤sdb sdd

[root@Whatsername /]# pvcreate /dev/sd{b,d}
  Writing physical volume data to disk "/dev/sdb"
  Physical volume "/dev/sdb" successfully created
  Writing physical volume data to disk "/dev/sdd"
  Physical volume "/dev/sdd" successfully created

2、檢測所創建pv

pvs
pvscan
pvdisplay

二、創建VG
1、創建

格式:vgcreate vg命令 pv1 pv2 .....
[root@Whatsername /]# vgcreate zxhh_vg /dev/sd{b,d}
Volume group "zxhh_vg" successfully created

2、檢測

vgs
vgscan
vgdisplay

3、刪除這個VG,重新創建,pe為8M

[root@Whatsername /]# vgremove zxhh_vg
  Volume group "zxhh_vg" successfully removed
[root@Whatsername /]# vgcreate -s 8M zxhk_vg /dev/sd{b,d}
  Volume group "zxhk_vg" successfully created

4、移除pv sdb

[root@Whatsername /]# pvmove /dev/sdb
  No data to move for zxhk_vg
[root@Whatsername /]# vgreduce zxhk_vg /dev/sdb
  Removed "/dev/sdb" from volume group "zxhk_vg"
[root@Whatsername /]# pvs
  PV         VG             Fmt  Attr PSize  PFree
  /dev/sda2  vg_whatsername lvm2 a--  19.51g    0 
  /dev/sdb                  lvm2 a--   4.00g 4.00g
  /dev/sdd   zxhk_vg        lvm2 a--   3.99g 3.99g
[root@Whatsername /]# pvremove /dev/sdb
  Labels on physical volume "/dev/sdb" successfully wiped

5、新添加PV進來

[root@Whatsername /]# pvcreate /dev/sde
  Writing physical volume data to disk "/dev/sde"
  Physical volume "/dev/sde" successfully created
[root@Whatsername /]# vgextend zxhk_vg /dev/sde
  Volume group "zxhk_vg" successfully extended
[root@Whatsername /]# pvs
  PV         VG             Fmt  Attr PSize  PFree
  /dev/sda2  vg_whatsername lvm2 a--  19.51g    0 
  /dev/sdd   zxhk_vg        lvm2 a--   3.99g 3.99g
  /dev/sde   zxhk_vg        lvm2 a--   2.99g 2.99g

三、創建lv
1、創建一個100M的邏輯卷

[root@Whatsername /]# lvcreate -L 100M -n zxhk_lv zxhk_vg
創建的邏輯卷對應的設備文件在/dev/zxhk_vg/zxhk_lv

2、安裝文件系統

[root@Whatsername /]# mke2fs -t ext4 /dev/zxhk_vg/zxhk_lv

3、掛載使用邏輯卷

[root@Whatsername /]# mount /dev/zxhk_vg/zxhk_lv /ma
[root@Whatsername /]# df -lhP

4擴展邏輯卷:

[root@localhost ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- 8.47g                                                    
  swap   centos -wi-ao---- 1.00g                                                    
  lvtest vgtest -wi-ao---- 3.91g                                                    
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n-  9.51g 40.00m
  vgtest   3   1   0 wz--n- 11.99g  8.08g
  [root@localhost ~]# lvextend -L +1G /dev/vgtest/lvtest  #為lvtest的空間擴大1G
  Size of logical volume vgtest/lvtest changed from 3.91 GiB (1000 extents) to 4.91 GiB (1256 extents).
  Logical volume lvtest successfully resized.
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                QRJ9jg-vxf6-cOHs-5zuJ-dBze-UryA-3sGork
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-19 22:46:43 +0800
  LV Status              available
  open                 1
  LV Size                4.91 GiB #擴展后的空間
  Current LE             1256 #擴展后的LE,LE的值與PE相同
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@localhost ~]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  3.8G   14M  3.6G   1% /lvtest  #但能使用的空間還沒有擴展
[root@localhost ~]# resize2fs /dev/vgtest/lvtest #resize2fs命令被用來增大或者收縮未加載的“ext2/ext3”文件系統的大小
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vgtest/lvtest is mounted on /lvtest; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vgtest/lvtest is now 1286144 blocks long.
[root@localhost ~]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  4.8G   14M  4.6G   1% /lvtest #已能使用擴展后的空間


在線擴容LVM命令比較簡單,但是需要理解的的是,實際工作中應該是把新的PV分區格式化為8e的分區,把PV添加到VG中,,在通過VG來
分配空間給我們的LV,由于我的VG空間充足,直接LV命令擴容。

在線lvetend擴容LV后,系統還無法識別LV的空間,需要 resize2fs重新讀取一下,是系統識別到正確的容量空間。

5.縮減邏輯卷:

[root@localhost /]# lvdisplay /dev/vgtest/lvtest 
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                ze2YVv-0eXR-RBD2-byEK-eqtt-zuaD-m4LqJM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-05-19 23:35:14 +0800
  LV Status              available
  # open                 1
  LV Size                5.00 GiB #縮小前的空間
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@localhost /]# umount /lvtest/  #必須先卸載,否則會出問題。但擴大空間時不用先卸載
[root@localhost /]# resize2fs /dev/vgtest/lvtest 2G #把文件系統大小壓縮成2G
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/vgtest/lvtest' first.  #提示先進行文件檢測,如果沒有事先umount,檢測會出問題,提示超級塊有壞塊
[root@localhost /]# e2fsck -f /dev/vgtest/lvtest #檢測 
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vgtest/lvtest: 11/327680 files (0.0% non-contiguous), 55935/1310720 blocks
[root@localhost /]# resize2fs /dev/vgtest/lvtest 2G  #把文件系統大小壓縮成2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vgtest/lvtest to 524288 (4k) blocks.
The filesystem on /dev/vgtest/lvtest is now 524288 blocks long.
[root@localhost /]# lvreduce -L 2G /dev/vgtest/lvtest #把LV的空間縮小成2G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvtest? [y/n]: Y
  Size of logical volume vgtest/lvtest changed from 5.00 GiB (1280 extents) to 2.00 GiB (512 extents).
  Logical volume lvtest successfully resized.
[root@localhost /]# mount /dev/vgtest/lvtest /lvtest/
[root@localhost /]# df -h | grep "lvtest"
/dev/mapper/vgtest-lvtest  1.9G  7.7M  1.8G   1% /lvtest

在實際中有可能出現原來的LV空間數據存放BLOCK比較分散,縮減需要把磁盤空間數據的集中在限定大小的區域,所以需要需要卸載,以
免在數據移動過程中,有其它的數據寫入縮減空間以為的block。

記得卸載后一定記需要強制檢測分區,使用 resize2fs調整分區,再使用lvreduce調整分區,不然會出現該LV卷出現損壞的故障報錯。

6.刪除LVM

1、取消掛載及刪除/etc/fstab中條目

umount /home   #取消掛載
vim /etc/fstab   #刪除該文件中/home掛載的對應條目

2、移除邏輯卷LV

 lvchange -an /dev/vgname/lvname   #關閉邏輯卷
 lvremove /dev/vgname/lvname       #移除邏輯卷

3、移除卷組VG

 vgchange -an /dev/vgname   #關閉卷組
 vgremove /dev/vgname       #移除卷組

4、移除物理卷PV

 pvremove /dev/sda1      #移除物理卷

5、刪除磁盤分區

通過fdisk刪除磁盤分區,這個不做演示
partx -d --nr 1 /dev/sda   #刪除之后,記得用該命令刷新內存條目

7.LVM的遷移
以下操作以遷移VG為主進行的操作,遷移LV同理

1、源主機上操作
①取消所要遷移的文件系統掛載
umount /home
②關閉LV和VG

lvchange -an /dev/vgname/lvname
vgchange -an /dev/vgname

③導出VG

vgexport vgname

2、目標主機上操作
①導入VG

vgimport vgname

②激活VG,掛載文件系統

 vgchange -ay vgname

③掛載遷移過來的文件系統

 mkdir /home
 mount/dev/vgname/lvname /home
 df -h    #查看掛載情況

4.快照:snapshot

介紹幾個概念,關于數據的備份

冷備份:卸載掉文件系統,不能讀不能寫

溫備份:不卸載文件系統,能讀取文件系統內容但是不能寫

熱備份:不卸載文件系統,既能讀取文件系統內容又能寫入

注意兩點:

1),快照其實也是一個邏輯卷

2),快照只能對邏輯卷LVM進行備份,并且只能對同一個卷組的邏輯卷進行備份

1.快照概論
對文件系統做快照,是把文件系統的某一刻的狀態,瞬間掃描,創建對文件系統的元數據的監控器(快照卷),快照卷是指向原卷的另一個路徑,存放著原卷某一時刻的元數據.針對某一時間,原卷的文件要變化時,先把要復制的文件備份在快照卷,再改變原卷文件;如果原卷一直沒有發生改變,在恢復快照時,快照卷仍指向源文件,訪問源文件.創建快照卷后,原卷在發生改變后,在進行差異(增量備份).快照卷的大小跟保留時間有關聯,應大于等于源邏輯卷的大小,方便存儲源邏輯卷的文件.

快照就是將當時系統的信息記錄下來,就好像照相一樣。將來若有任何數據的改動,則原始數據就會被移動到快照區。

做快照時,一定要確保數據沒有在被訪問

快照LV和被快照的LV要在同一個VG中。

2.管理快照
創建快照卷:(與現有卷在一個空間里)
lvcreate -L #[mMgGtT] -p r -s -n snapshot_name original_lv_name
說明:-s : 創建快照的參數;-L:設置快照空間大??;-P r快照為只讀模式-n創建快照的名稱

3.演練

創建快照卷:
    1.lvcreate -s -L 2G -n mylv_snap -p r /dev/vg0/mylv
    2.mount /dev/mylv_snap /mnt
刪除快照卷:
    1.umount /mnt
    2.lvremove /dev/vg0/mylv_snap

一.對lvm0102做快照,備份其數據
1.查看lv0102的空間大小,查看其中數據;

2.做快照后,刪除和修改源卷的數據;

3.查看快照卷中的數據是否完整。

[root@love721 root]cd /mnt/mylv0102   進入lv的掛載目錄
[root@love721 mylv0102]# ll –h  # 查看到原卷上的數據有105M
total 105M
-rw-r--r-- 1 root root 124K Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root 4.0K Aug  1 16:10 grub
drwx------ 6 root root 4.0K Aug  1 16:10 grub2
-rw-r--r-- 1 root root  55M Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root  27M Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 9.8M Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root  119 Aug  1 13:04 issue
drwx------ 2 root root  16K Aug  1 13:03 lost+found
-rw-r--r-- 1 root root 247K Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root 2.9M Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

[root@love721 mylv0102]# df –h  #硬盤的空間還有2.7G左右
Filesystem               Size  Used Avail Use% Mounted on
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/vg01-lv0102  2.9G  116M  2.7G   5% /mnt/mylv0102

創建快照卷 lv0102_snap 大小為500M (快照卷空間不要太小了,一邊原卷上的數據變動比較頻繁時,快照卷無法保存所有的原卷數據備份)

[root@love721 mylv0102]# lvcreate -s -L 500M -n lv0102_snap -p r /dev/mapper/vg01-lv0102 
#創建一個500M的 lv0102的快照卷 lv0102_snap,權限為只讀的
  Logical volume "lv0102_snap" created.

 [root@love721 mylv0102]#  lvdisplay  #顯示LV卷的信息,部分文字省了,可以看到剛剛創建的快照卷
  …………………………………..   
  --- Logical volume ---
  LV Path                /dev/vg01/lv0102_snap
  LV Name                lv0102_snap
  VG Name                vg01
  LV UUID                YAETxW-lPfi-af9a-RM41-t5Ok-5BBT-ourZfl
  LV Write Access        read only
  LV Creation host, time love721.q.com, 2016-08-01 16:16:34 +0800
  LV snapshot status     active destination for lv0102
  LV Status              available
  # open                 0
  LV Size                2.93 GiB
  Current LE             750
  COW-table size         500.00 MiB
  COW-table LE           125
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

掛載快照卷,修改lv0102中的數據,刪除部分數據,測試快照卷的完整性。

[root@love721 mylv0102]# mkdir /mnt/snap

 [root@love721 mylv0102]# mount  /dev/vg01/lv0102_snap /mnt/snap #掛載快照卷
mount: /dev/mapper/vg01-lv0102_snap is write-protected, mounting read-only

[root@love721 snap]# ll -h
total 105M
-rw-r--r-- 1 root root 124K Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root 4.0K Aug  1 16:10 grub
drwx------ 6 root root 4.0K Aug  1 16:10 grub2
-rw-r--r-- 1 root root  55M Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root  27M Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 9.8M Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root  119 Aug  1 13:04 issue
drwx------ 2 root root  16K Aug  1 13:03 lost+found
-rw-r--r-- 1 root root 247K Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root 2.9M Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root 5.0M Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

刪除原卷下一些數據,修改個別文件

[root@love721 mylv0102]# rm symvers-3.10.0-327.el7.x86_64.gz  
rm: remove regular file ‘symvers-3.10.0-327.el7.x86_64.gz’? y
[root@love721 mylv0102]# rm vmlinuz-*
rm: remove regular file ‘vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc’? y
rm: remove regular file ‘vmlinuz-3.10.0-327.el7.x86_64’? y

刪除lv0102原卷上的三個文件

[root@love721 mylv0102]# ll
total 96736
-rw-r--r-- 1 root root   126426 Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root     4096 Aug  1 16:10 grub
drwx------ 6 root root     4096 Aug  1 16:10 grub2
-rw-r--r-- 1 root root 57644379 Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root 28097829 Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 10190079 Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root      119 Aug  1 13:04 issue
drwx------ 2 root root    16384 Aug  1 13:03 lost+found
-rw------- 1 root root  2963044 Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
[root@love721 mylv0102]# echo "1234567890" >> issue  #修改issue文件內容
[root@love721 mylv0102]# cat issue 
\S
Kernel \r on an \m

Mage Education Learning Services
http://www.magedu.com


TTY is  \l
HOSTNAME is \n
DATE is  \t

1234567890

查看快照上的文件內容:刪除的文件在,修改issue的文件內容是快照以前的

[root@love721 mylv0102]# ll /mnt/snap/
total 107056
-rw-r--r-- 1 root root   126426 Aug  1 16:10 config-3.10.0-327.el7.x86_64
drwxr-xr-x 2 root root     4096 Aug  1 16:10 grub
drwx------ 6 root root     4096 Aug  1 16:10 grub2
-rw-r--r-- 1 root root 57644379 Aug  1 16:10 initramfs-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc.img
-rw-r--r-- 1 root root 28097829 Aug  1 16:10 initramfs-3.10.0-327.el7.x86_64.img
-rw-r--r-- 1 root root 10190079 Aug  1 16:10 initrd-plymouth.img
-rw-r--r-- 1 root root      119 Aug  1 13:04 issue
drwx------ 2 root root    16384 Aug  1 13:03 lost+found
-rw-r--r-- 1 root root   252612 Aug  1 16:10 symvers-3.10.0-327.el7.x86_64.gz
-rw------- 1 root root  2963044 Aug  1 16:10 System.map-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root  5156528 Aug  1 16:10 vmlinuz-0-rescue-7d0dd8f054af463ca2d6ac1f4b210fdc
-rwxr-xr-x 1 root root  5156528 Aug  1 16:10 vmlinuz-3.10.0-327.el7.x86_64

[root@love721 mylv0102]# cat /mnt/snap/issue 
\S
Kernel \r on an \m

Mage Education Learning Services
http://www.magedu.com


TTY is  \l
HOSTNAME is \n
DATE is  \t

以上快照就完成,我們把快照內的文件拷貝出來放在備份服務器上即可

實驗完畢,刪除測試的整個LV

1.卸載所有的掛載點上的LV卷;

2.刪除LV卷

lvremove  /dev/vg01/lv0101

lvremove  /dev/vg01/lv0102

3.刪除VG:

Vgremove  /dev/vg01

Vgremove  /dev/vg02

4.刪除PE:

peremove  /dev/sdd1

peremove  /dev/sdc1

peremove  /dev/sdb1

實戰:
1.創建一個至少有兩個pv組成的大小為20G的名為tesvgt的卷組.要求PE大小為16MB.
2.新建用戶archlinux,要求其家目錄為/users/archlinux,爾后切換archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
3.擴展testlv至7G,要求archlinux用戶的文件不能丟失
4.收縮testlv至3G,要求archlinux用戶的文件不能丟失
5.對testlv創建快照,先嘗試基于快照備份數據,驗證快照的功能

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

(1)
wencxwencx
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • linux作業管理和任務計劃

    一、作業管理 Linux 的作業控制     前臺作業:通過終端啟動,且啟動后一直占據終端;     后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端) 如何讓作業運行于后臺? (1)  運行中的作業: Ctrl+z (2)&nb…

    Linux干貨 2016-09-13
  • cp命令淺析

      cp主要作用    1拷貝文件到指定目錄    2拷貝文件到指定文件    3拷貝多個文件到指定目錄    4拷貝目錄到指定目錄    5拷貝多個目錄到指定目錄 先做些準備工作 &nbs…

    2017-04-04
  • Lvm的創建

    一、LVM相關基礎: ????PE:類似與磁盤的block,這個的大小也會影響VG的大小 ????PV:是磁盤分區或邏輯上與磁盤分區具有相同功能的設備(RAID),是LVM的基本存儲模塊,但與基本的物理存儲模塊相比,卻包含有lvm相關的參數 ????VG:類似于非lvm系統中的物理磁盤,包含多個pv ????LV:類似于非lvm系統中的磁盤分區 ? PV相關…

    2016-04-10
  • Homework Week-4 grep用法

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod  -R g=,o= /home/tuser1 2、編輯/etc/group文件,添加…

    Linux干貨 2016-09-06
  • N25第1周作業

    1.計算機的組成及功能 地址:博客園http://www.cnblogs.com/qingyangzi/p/6133274.html 2.linux主要的發行版及其區別和聯系 地址:博客園http://www.cnblogs.com/qingyangzi/p/6135801.html 3.linux哲學思想 地址:博客園http://www.cnblogs.…

    Linux干貨 2016-12-05
  • M20 – 1- 第二周博客(2):Linux的文件系統與結構

    Linux系統對于一個初學者來說,其實并不那么容易.所以了解其系統的結構,及其表示的含義是非常重要的.否則安裝好系統后,都無從下手.也不知道怎么辦。下面介紹一下Linux 的目錄結構.及每個目錄表示的含義.方便初學者學習和使用Linux系統。 從上圖可以看出Linux的目錄結構屬于樹狀型的,是否已經對Linux的結構有個大概的認識了呢,接下來講的是這些目錄中…

    Linux干貨 2016-08-02
欧美性久久久久