<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          linux磁盤管理LVM的使用

          共 32308字,需瀏覽 65分鐘

           ·

          2024-04-12 04:55


          LVM是什么

          LVM是Linux操作系統(tǒng)的邏輯卷管理器。現(xiàn)在有兩個(gè)Linux版本的LVM,分別是 LVM1,LVM2。LVM1是一種已經(jīng)被認(rèn)為穩(wěn)定了幾年的成熟產(chǎn)品,LVM2 是最新最好的LVM版本。LVM2幾乎完全向后兼容使用LVM1創(chuàng)建的卷。此例外是快照(在升級(jí)到LVM 2之前,必須刪除快照卷)。

          LVM簡(jiǎn)介

          邏輯卷管理提供了比傳統(tǒng)的磁盤和分區(qū)視圖更高級(jí)別的計(jì)算機(jī)系統(tǒng)上磁盤存儲(chǔ)的視圖。這使得系統(tǒng)管理員可以更靈活地將存儲(chǔ)分配給應(yīng)用程序和用戶。

          在邏輯卷管理器的控制下創(chuàng)建的存儲(chǔ)卷可以隨意調(diào)整大小和移動(dòng),盡管這可能需要對(duì)文件系統(tǒng)工具進(jìn)行一些升級(jí)。

          邏輯卷管理器還允許管理用戶定義組中的存儲(chǔ)卷,允許系統(tǒng)管理員處理明顯命名的卷組(如“development”和“sales”),而不是物理磁盤名稱,例如“sda”和“sdb”

          LVM基本術(shù)語(yǔ)

          volume group (VG) 

          卷組是LVM中使用的最高級(jí)別的抽象。它將邏輯卷和物理卷集合在一起成為一個(gè)管理單元。

          physical volume (PV)

          一個(gè)物理卷通常是一個(gè)硬盤,雖然它可能只是一個(gè)看起來(lái)像一個(gè)硬盤(如軟件RAID設(shè)備)的設(shè)備。

          logical volume (LV)

          相當(dāng)于非LVM系統(tǒng)中的磁盤分區(qū)。LV作為標(biāo)準(zhǔn)塊設(shè)備可見(jiàn); 因此LV可以包含文件系統(tǒng)(例如/ home)。

          physical extent (PE) 

          每個(gè)物理卷都被劃分為數(shù)據(jù)塊(稱為物理擴(kuò)展盤區(qū)),這些擴(kuò)展盤區(qū)與卷組的邏輯盤區(qū)具有相同的大小。

          logical extent (LE)

          每個(gè)邏輯卷都被分割成數(shù)據(jù)塊,稱為邏輯盤區(qū)。卷組中的所有邏輯卷的區(qū)段大小都是相同的。

          幾個(gè)概念的關(guān)系

          一個(gè)具體的例子將有助于:

          假設(shè)我們有一個(gè)名為VG1的卷組,這個(gè)卷組的物理盤區(qū)大小為4MB。在這個(gè)卷組中,我們引入了2個(gè)硬盤分區(qū)/dev/hda1和/dev/hdb1。
          這些分區(qū)將成為物理卷PV1和PV2(管理員可以自行決定是否提供更有意義的名稱)。
          PV被分成4MB塊,因?yàn)檫@是卷組的大小。磁盤大小不同,我們?cè)赑V1中獲得99個(gè)擴(kuò)展盤區(qū),在PV2中獲得248個(gè)擴(kuò)展盤區(qū)。
          我們現(xiàn)在可以創(chuàng)建自己的邏輯卷,它可以是1到347(248 + 99)范圍之間的任何大小。
          當(dāng)創(chuàng)建邏輯卷時(shí),在邏輯盤區(qū)和物理盤區(qū)之間定義映射,例如, 邏輯盤區(qū)1可以映射到PV1的物理盤區(qū)51上,寫入邏輯盤的第一個(gè)4MB的數(shù)據(jù)實(shí)際上被寫入到PV1的第51盤區(qū)。

          映射模式

          線性映射 : 將分配一定范圍的PE到LV的一個(gè)區(qū)域,例如LE 1 - 99映射到PV1,LE 100 - 347映射到PV2。

          分條映射 : 將跨多個(gè)物理卷交織邏輯盤區(qū)的塊,這個(gè)方式一定程度上提高了性能,具體如下

            1st chunk of LE[1] -> PV1[1], #第一個(gè)邏輯塊在PV1設(shè)備上, 第二個(gè)在PV2設(shè)備上,等等。
            2nd chunk of LE[1] -> PV2[1],
            3rd chunk of LE[1] -> PV3[1],
            4th chunk of LE[1] -> PV1[2],

          Snapshots(快照):

          這是LVM提供的一個(gè)非常棒的功能就是快照了,他允許管理員創(chuàng)建一個(gè)新的塊設(shè)備來(lái)呈現(xiàn)一個(gè)邏輯卷的的精確副本,在某個(gè)時(shí)間凍結(jié),管理員可以及時(shí)備份指定一致?tīng)顟B(tài)下的數(shù)據(jù),備份完畢就可以刪除設(shè)備了。

          快照最初包含有關(guān)快照的一些元數(shù)據(jù),但沒(méi)有來(lái)自源邏輯卷的實(shí)際數(shù)據(jù)。快照使用寫時(shí)復(fù)制(copy on write)技術(shù)來(lái)檢測(cè)數(shù)據(jù)在原始數(shù)據(jù)塊中何時(shí)更改。它將拍攝快照時(shí)保存的值復(fù)制到快照卷中的塊中,然后允許將新數(shù)據(jù)存儲(chǔ)在源塊中。

          隨著更多塊從源邏輯卷上的原始值發(fā)生更改,快照大小也會(huì)增加。如果快照卷變滿,它將被丟棄,所以分配足夠的空間是非常重要的,具體取決于你數(shù)據(jù)的變換情況,如果快照大小和原始數(shù)據(jù)一樣大,它將永遠(yuǎn)不會(huì)溢出的。

          安裝LVM

          [root@centos7 ~]$ rpm -q lvm2                           # 查看lvm2是否安裝了, 我使用的centos7,這是安裝的了lvm2-2.02.171-8.el7.x86_64[root@centos7 ~]$ # yum -y install lvm2        # 沒(méi)有安裝的話使用yum安裝
                

          常用命令簡(jiǎn)介


          [root@centos7 ~]$ pv                                                   # 使用tab按鍵獲取pv相關(guān)命令pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan[root@centos7 ~]$ vg                                                   # 使用tabl按鍵獲取vg相關(guān)的命令vgcfgbackup    vgck           vgdisplay      vgimport       vgmknodes      vgrename       vgsplitvgcfgrestore   vgconvert      vgexport       vgimportclone  vgreduce       vgs            vgchange       vgcreate       vgextend       vgmerge        vgremove       vgscan         [root@centos7 ~]$ lv                                                   # 使用tabl按鍵獲取lv先關(guān)的命令lvchange     lvdisplay    lvmconf      lvmdump      lvmsadc      lvremove     lvs          lvconvert    lvextend     lvmconfig    lvmetad      lvmsar       lvrename     lvscan       lvcreate     lvm          lvmdiskscan  lvmpolld     lvreduce     lvresize


          上面的命令比較多,簡(jiǎn)單介紹幾個(gè)常用的命令。

          • pv打頭的:代表pv相關(guān)的命令

          • vg帶頭的:代表vg相關(guān)的命令

          • lv帶頭的:代表lv相關(guān)的命令

          • create:創(chuàng)建相關(guān)

          • remove:移除相關(guān)

          • display:顯示相關(guān)

          • import:導(dǎo)入 相關(guān)

          • export:導(dǎo)出相關(guān)

          • rename:重命名

          • vgchange:改變狀態(tài)相關(guān)

          • extend:擴(kuò)展相關(guān)

          • reduce:縮進(jìn)相關(guān)

          使用LVM

          pv創(chuàng)建

          pv作用:初始化磁盤和磁盤分區(qū)

          在將磁盤或者磁盤分區(qū)用作物理卷(PV)之前,你需要對(duì)其進(jìn)行初始化工作。

          [root@centos7 ~]$ pvcreate /dev/sdb1

          注意:

          1. 不建議對(duì)整個(gè)磁盤做PV初始化工作。因?yàn)槠渌僮飨到y(tǒng)不能識(shí)別LVM元數(shù)據(jù),導(dǎo)致我們認(rèn)為磁盤是空閑的,重新設(shè)置分區(qū)覆蓋原有數(shù)據(jù)

          2.  如果是分區(qū)需要調(diào)整分區(qū)的類型為L(zhǎng)VM(代碼為8e)

          分區(qū)并設(shè)置分區(qū)類型


          [root@centos7 ~]$ fdisk -l
          Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x000b0b8a
          Device Boot Start End Blocks Id System/dev/sda1 * 2048 2099199 1048576 83 Linux/dev/sda2 2099200 270534655 134217728 83 Linux/dev/sda3 270534656 372934655 51200000 83 Linux/dev/sda4 372934656 419430399 23247872 5 Extended/dev/sda5 372938752 413898751 20480000 83 Linux
          Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x93d380cf
          Device Boot Start End Blocks Id System/dev/sdb1 2048 2099199 1048576 8e Linux LVM/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
          Disk /dev/sde: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x73afb36f
          Device Boot Start End Blocks Id System/dev/sde1 2048 2099199 1048576 8e Linux LVM/dev/sde2 2099200 6293503 2097152 8e Linux LVM
          Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x7e0900d8
          Device Boot Start End Blocks Id System/dev/sdd1 2048 2099199 1048576 8e Linux LVM/dev/sdd2 2099200 12584959 5242880 8e Linux LVM
          Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0xc56b90d8
          Device Boot Start End Blocks Id System/dev/sdc1 2048 2099199 1048576 8e Linux LVM/dev/sdc2 2099200 4196351 1048576 8e Linux LVM
          Disk /dev/sdf: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes
          [root@centos7 ~]$ partprobe Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.[root@centos7 ~]$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 128G 0 part ├─sda3 8:3 0 48.8G 0 part /├─sda4 8:4 0 512B 0 part └─sda5 8:5 0 19.5G 0 part /appsdb 8:16 0 100G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 1G 0 part sdc 8:32 0 20G 0 disk ├─sdc1 8:33 0 1G 0 part └─sdc2 8:34 0 1G 0 part sdd 8:48 0 20G 0 disk ├─sdd1 8:49 0 1G 0 part └─sdd2 8:50 0 5G 0 part sde 8:64 0 20G 0 disk ├─sde1 8:65 0 1G 0 part └─sde2 8:66 0 2G 0 part sdf 8:80 0 20G 0 disk sr0 11:0 1 8.1G 0 rom /run/media/root/CentOS 7 x86_64


          上面我們?cè)?dev/sd{b,c,d,e}這4個(gè)盤每個(gè)都有2個(gè)類型為lvm的盤。接下來(lái)使用pvcreat初始化為物理卷


          [root@centos7 ~]$ pvcreate /dev/sd{b1,b2,c1,c2,d1,d2,e1,e2} -y        # 這里加入了-y選項(xiàng),之前的盤有文件系統(tǒng)的。我這里強(qiáng)制創(chuàng)建了  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Wiping xfs_external_log signature on /dev/sdb2.  Physical volume "/dev/sdb1" successfully created.  Physical volume "/dev/sdb2" successfully created.  Physical volume "/dev/sdc1" successfully created.  Physical volume "/dev/sdc2" successfully created.  Physical volume "/dev/sdd1" successfully created.  Physical volume "/dev/sdd2" successfully created.  Physical volume "/dev/sde1" successfully created.  Physical volume "/dev/sde2" successfully created.


          pv信息查看


          [root@centos7 ~]$ pvs                                           # 詳細(xì)信息可以使用pvdisplay查看  PV         VG         Fmt  Attr PSize    PFree     /dev/sdb1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sdb2             lvm2 ---     1.00g    1.00g  /dev/sdc1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sdc2             lvm2 ---     1.00g    1.00g  /dev/sdd1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sdd2             lvm2 ---     5.00g    5.00g  /dev/sde1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sde2             lvm2 ---     2.00g    2.00g


          vg創(chuàng)建

          vg的創(chuàng)建是比較簡(jiǎn)單的。

          [root@centos7 ~]$ vgcreate  vg_test_01 /dev/sd{b1,c1,d1,e1}    # 上面我們創(chuàng)建了8個(gè)pv,這里我們使用4個(gè)1的設(shè)備去創(chuàng)建vg,創(chuàng)建后默認(rèn)vg是激活狀態(tài)的  Volume group "vg_test_01" successfully created

          vg信息的查看


          [root@centos7 ~]$ vgs                                 # 查看簡(jiǎn)短的信息  VG         #PV #LV #SN Attr   VSize VFree  vg_test_01   4   0   0 wz--n- 3.98g 3.98g[root@centos7 ~]$ vgdisplay                           # 查看詳細(xì)的信息  --- Volume group ---  VG Name               vg_test_01                    # vg的名字  System ID               Format                lvm2                          # lvm格式, 這里是lvm2的  Metadata Areas        4  Metadata Sequence No  1  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                0  Open LV               0  Max PV                0  Cur PV                4  Act PV                4  VG Size               3.98 GiB                       # 這是我們4個(gè)pv的總大小  PE Size               4.00 MiB                       # pe的大小  Total PE              1020  Alloc PE / Size       0 / 0                          # 分配的大小,這里我們還沒(méi)有創(chuàng)建lv,所以為0  Free  PE / Size       1020 / 3.98 GiB                # 分配后剩余的空間,第一個(gè)數(shù)是剩余的個(gè)數(shù),第二個(gè)數(shù)是剩余的空間大小,2個(gè)都是剩余的只是單位表示不一樣而已  VG UUID               Y5NjjP-e3Aq-3u6E-gw6P-fLyy-Y5pN-ryyN9R  # vg設(shè)備的uuid


          vg的激活

          [root@centos7 ~]$ vgchange -a y vg_test_01                               # 我們上面就是激活狀態(tài)的,如果我們重啟系統(tǒng),或者vgchange -y n命令關(guān)閉了,就需要這個(gè)命令啟動(dòng)下  0 logical volume(s) in volume group "vg_test_01" now active

          vg的移除

          [root@centos7 ~]$ vgchange -a n vg_test_01                       # 要想移除vg,需要先關(guān)閉vg才能移除,這里先關(guān)閉  0 logical volume(s) in volume group "vg_test_01" now active[root@centos7 ~]$ vgremove  vg_test_01                           # 移除vg,

          vg的添加成員

          [root@centos7 ~]$ vgcreate  vg_test_01 /dev/sd{b1,c1,d1,e1}       # 上面我把vg刪了,這里重新添加進(jìn)來(lái)  Volume group "vg_test_01" successfully created[root@centos7 ~]$ vgextend vg_test_01  /dev/sdb2                  # 添加一個(gè)pv2到vg中來(lái)  Volume group "vg_test_01" successfully extendedvg的刪除成員

          這個(gè)操作需要使用vgdisplay查看vg的使用情況和刪除的pv上沒(méi)有數(shù)據(jù)。如果有使用pvmove遷移完畢數(shù)據(jù)才能移除。

          [root@centos7 ~]$ vgreduce  vg_test_01  /dev/sdb2  Removed "/dev/sdb2" from volume group "vg_test_01"

          lv的創(chuàng)建


          [root@centos7 ~]$ vgdisplay                        # lv邏輯卷創(chuàng)建之前, 需要查看下vg信息  --- Volume group ---  VG Name               vg_test_01  System ID               Format                lvm2  Metadata Areas        4  Metadata Sequence No  3  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                0  Open LV               0  Max PV                0  Cur PV                4  Act PV                4  VG Size               3.98 GiB  PE Size               4.00 MiB  Total PE              1020  Alloc PE / Size       0 / 0     Free  PE / Size       1020 / 3.98 GiB  VG UUID               sZwHea-LabA-SJaV-Wz40-qFp3-Um2w-pvmJAY   [root@centos7 ~]$ lvcreate -L 2G  -n lv_test_01 vg_test_01                 # 我們的vg是近4G的,我這里創(chuàng)建一個(gè)2G的lv,之前磁盤使用了文件系統(tǒng)慈愛(ài)有如下警告。輸入y即可。WARNING: linux_raid_member signature detected on /dev/vg_test_01/lv_test_01 at offset 4096. Wipe it? [y/n]: y  Wiping linux_raid_member signature on /dev/vg_test_01/lv_test_01.WARNING: ext4 signature detected on /dev/vg_test_01/lv_test_01 at offset 1080. Wipe it? [y/n]: y  Wiping ext4 signature on /dev/vg_test_01/lv_test_01.  Logical volume "lv_test_01" created.


          lv的移除

          [root@centos7 ~]$ lvremove  /dev/vg_test_01/lv_test_01     # 這個(gè)移除我們上面創(chuàng)建lv_test_01這個(gè)邏輯卷, 下面提示這個(gè)是活動(dòng)的邏輯卷,輸入y就可以了Do you really want to remove active logical volume vg_test_01/lv_test_01? [y/n]: y  Logical volume "lv_test_01" successfully removed

          注意: 如果這個(gè)lv被掛載了。請(qǐng)先umount

          掛載文件系統(tǒng)


          [root@centos7 ~]$ lvcreate -L 2G  -n lv_test_01 vg_test_01                             # 上面我們刪除了lv,這里需要?jiǎng)?chuàng)建出來(lái)  Logical volume "lv_test_01" created.[root@centos7 ~]$ mkfs.ext4  /dev/vg_test_01/lv_test_01                                  # 這里我使用ext4 文件系統(tǒng)了。centos7默認(rèn)使用的文件系統(tǒng)是xfs,但是xfs不支持縮減的
          [root@centos7 ~]$ mkdir /mnt/test_01 # 創(chuàng)建掛載點(diǎn)目錄[root@centos7 ~]$ mount /dev/vg_test_01/lv_test_01 /mnt/test_01/ # 掛載邏輯卷


          擴(kuò)展LVM

          上面我們的測(cè)試是vg是4G,我們的創(chuàng)建的lv是2G的,我們想給創(chuàng)建的lv擴(kuò)展1G空間。


          [root@centos7 ~]$ lvextend -L +1G /dev/vg_test_01/lv_test_01                 # 我們擴(kuò)大1G, +1G表示在原有基礎(chǔ)上擴(kuò)大1G,我們這里是有vg是有空間的,沒(méi)有的話就需要?jiǎng)?chuàng)建pv,擴(kuò)大vg在做  Size of logical volume vg_test_01/lv_test_01 changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).  Logical volume vg_test_01/lv_test_01 successfully resized.[root@centos7 ~]$ df -h                                                      # 上面的命令提示lv已經(jīng)到3G了, 但是使用df-h 查看還是2gFilesystem                         Size  Used Avail Use% Mounted on/dev/sda3                           48G  4.9G   41G  11% /devtmpfs                           979M  4.0K  979M   1% /devtmpfs                              993M     0  993M   0% /dev/shmtmpfs                              993M   22M  971M   3% /runtmpfs                              993M     0  993M   0% /sys/fs/cgroup/dev/sda1                          976M  130M  780M  15% /boot/dev/sda5                           20G  307M   18G   2% /apptmpfs                              199M   32K  199M   1% /run/user/0/dev/sr0                           8.1G  8.1G     0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_test_01-lv_test_01  2.0G   33M  2.0G   2% /mnt/test_01[root@centos7 ~]$ resize2fs /dev/mapper/vg_test_01-lv_test_01              # 需要增長(zhǎng)下文件系統(tǒng)的,讓文件系統(tǒng)和lv大小匹配下meta-data=/dev/mapper/vg_test_01-lv_test_01 isize=512    agcount=4, agsize=131072 blks         =                       sectsz=512   attr=2, projid32bit=1         =                       crc=1        finobt=0 spinodes=0data     =                       bsize=4096   blocks=524288, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal               bsize=4096   blocks=2560, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0data blocks changed from 524288 to 786432[root@centos7 ~]$ df -h                                                    # 再次查看就是一致的了Filesystem                         Size  Used Avail Use% Mounted on/dev/sda3                           48G  4.9G   41G  11% /devtmpfs                           979M  4.0K  979M   1% /devtmpfs                              993M     0  993M   0% /dev/shmtmpfs                              993M   22M  971M   3% /runtmpfs                              993M     0  993M   0% /sys/fs/cgroup/dev/sda1                          976M  130M  780M  15% /boot/dev/sda5                           20G  307M   18G   2% /apptmpfs                              199M   32K  199M   1% /run/user/0/dev/sr0                           8.1G  8.1G     0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_test_01-lv_test_01  3.0G   33M  3.0G   2% /mnt/test_01


          注意:

          1.    ext系列可以使用resieze2fs去調(diào)整。其他的文件系統(tǒng)可以參考http://tldp.org/HOWTO/LVM-HOWTO/extendlv.html

          2.    lvextentd 有個(gè)-r選項(xiàng),自動(dòng)去調(diào)整大小,匹配lv和文件系統(tǒng)大小的。

          縮減LVM

          邏輯卷的大小可以減小,也可以增加。但是,在縮小卷本身之前,請(qǐng)記住縮小文件系統(tǒng)的大小或存在于卷中的任何文件是非常重要的,否則可能會(huì)丟失數(shù)據(jù)。

          注意:xfs,jsf文件系統(tǒng)是沒(méi)法縮減lvm的,因?yàn)檫@2個(gè)文件系統(tǒng)沒(méi)法縮減文件系統(tǒng)大小的。參考http://tldp.org/HOWTO/LVM-HOWTO/reducelv.html

          主要步驟:

          1.   檢查空間使用情況和分析

          2.   umount設(shè)備

          3.   縮減文件系統(tǒng)大小

          4.   縮減lv大小

          5.   恢復(fù)掛載設(shè)備

          上面我們的邏輯卷是3G的大小,在縮減之前我們需要確保縮減的空間不能影響數(shù)據(jù)的存放的。

          檢查工作


          [root@centos7 ~]$ cp -a /etc/ /mnt/test_01/                              # 我這里模擬下,只能目錄有文件的情況 [root@centos7 ~]$ du -sh /mnt/test_01/                                   # 查看下大小42M    /mnt/test_01/[root@centos7 ~]$ df -h                                                   # 查看邏輯卷分區(qū)利用情況 ,數(shù)據(jù)才存放76M,我們的邏輯卷都3G呢, 如果我們想縮減1G,完全沒(méi)有問(wèn)題的。Filesystem                         Size  Used Avail Use% Mounted on/dev/sda3                           48G  4.9G   41G  11% /devtmpfs                           979M  4.0K  979M   1% /devtmpfs                              993M     0  993M   0% /dev/shmtmpfs                              993M   22M  971M   3% /runtmpfs                              993M     0  993M   0% /sys/fs/cgroup/dev/sda1                          976M  130M  780M  15% /boot/dev/sda5                           20G  307M   18G   2% /apptmpfs                              199M   32K  199M   1% /run/user/0/dev/sr0                           8.1G  8.1G     0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_test_01-lv_test_01  3.0G   76M  3.0G   3% /mnt/test_01


          縮減空間


          [root@centos7 ~]$ umount /dev/vg_test_01/lv_test_01                           # 取消掛載[root@centos7 ~]$ resize2fs  /dev/vg_test_01/lv_test_01  1G                   # resieze2fs定義下文件系統(tǒng)大小resize2fs 1.42.9 (28-Dec-2013)Please run 'e2fsck -f /dev/vg_test_01/lv_test_01' first.
          [root@centos7 ~]$ e2fsck -f /dev/vg_test_01/lv_test_01 #上面的命令要檢查,那就檢查下e2fsck 1.42.9 (28-Dec-2013)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information/dev/vg_test_01/lv_test_01: 3614/196608 files (0.1% non-contiguous), 42361/786432 blocks[root@centos7 ~]$ resize2fs /dev/vg_test_01/lv_test_01 1G # 檢查完,那就執(zhí)行縮減文件系統(tǒng)大小resize2fs 1.42.9 (28-Dec-2013)Resizing the filesystem on /dev/vg_test_01/lv_test_01 to 262144 (4k) blocks.The filesystem on /dev/vg_test_01/lv_test_01 is now 262144 blocks long.[root@centos7 ~]$ lvreduce -L 1G /dev/vg_test_01/lv_test_01 # 縮減下邏輯卷到1G,這里有提示,縮減可能會(huì)丟失數(shù)據(jù),輸入y即可 WARNING: Reducing active logical volume to 1.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce vg_test_01/lv_test_01? [y/n]: yG Size of logical volume vg_test_01/lv_test_01 changed from 3.00 GiB (768 extents) to 1.00 GiB (256 extents). Logical volume vg_test_01/lv_test_01 successfully resized.[root@centos7 ~]$ mount /dev/vg_test_01/lv_test_01 /mnt/test_01/ # 恢復(fù)掛載[root@centos7 ~]$ ll /mnt/test_01/total 28drwxr-xr-x. 140 root root 12288 Dec 7 13:54 etcdrwx------. 2 root root 16384 Dec 7 15:47 lost+found[root@centos7 ~]$ df -h # 檢查下Filesystem Size Used Avail Use% Mounted on/dev/sda3 48G 4.9G 41G 11% /devtmpfs 979M 4.0K 979M 1% /devtmpfs 993M 0 993M 0% /dev/shmtmpfs 993M 22M 971M 3% /runtmpfs 993M 0 993M 0% /sys/fs/cgroup/dev/sda1 976M 130M 780M 15% /boot/dev/sda5 20G 307M 18G 2% /apptmpfs 199M 32K 199M 1% /run/user/0/dev/sr0 8.1G 8.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_test_01-lv_test_01 944M 52M 825M 6% /mnt/test_01


          遷移LVM的vg

          移動(dòng)vg到另外一個(gè)機(jī)器上

          主要步驟:

          1.   檢查和分析

          2.        一些預(yù)處理工作

          3.        umount文件系統(tǒng)

          4.   設(shè)置卷組非活動(dòng)

          5.   導(dǎo)出卷組

          6.   取出設(shè)備,插入到新機(jī)器

          7.   導(dǎo)入卷組

          8.   激活卷組

          9.   掛載文件系統(tǒng)

          檢查分析


          [root@centos7 ~]$ vgs  VG         #PV #LV #SN Attr   VSize VFree  vg_test_01   4   1   0 wz--n- 3.98g 2.98g[root@centos7 ~]$ pvsl  PV         VG         Fmt  Attr PSize    PFree     /dev/sdb1  vg_test_01 lvm2 a--  1020.00m       0   /dev/sdb2             lvm2 ---     1.00g    1.00g  /dev/sdc1  vg_test_01 lvm2 a--  1020.00m 1016.00m  /dev/sdc2             lvm2 ---     1.00g    1.00g  /dev/sdd1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sdd2             lvm2 ---     5.00g    5.00g  /dev/sde1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sde2             lvm2 ---     2.00g    2.00g[root@centos7 ~]$ lvs  LV         VG         Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert  lv_test_01 vg_test_01 -wi-ao---- 1.00g

          我們使用lvs,vgs,pvs分別查看信息。發(fā)現(xiàn)我們vg是3G的大小。lv是1G的大小。但是vg的pv來(lái)自不同的磁盤的。我們要遷移vg。不能把包含pv都遷移過(guò)去把。那這一下子需要4個(gè)盤的。

          我們把pv數(shù)據(jù)遷移下,到時(shí)候摘盤的時(shí)候只那一個(gè)就可以多好。發(fā)現(xiàn)/dev/sdd2是一個(gè)5G的盤。打算使用/dev/sdd這個(gè)盤作為遷移盤來(lái)遷移數(shù)據(jù)。

          一些預(yù)處理工作


          [root@centos7 ~]$ umount /mnt/test_01/                                    # 去除掛載
          [root@centos7 ~]$ vgchange -an vg_test_01 # 設(shè)置vg不激活 0 logical volume(s) in volume group "vg_test_01" now active
          [root@centos7 ~]$ pvmove /dev/sd{b1,c1,e1}                                 # 遷移pv數(shù)據(jù)  /dev/sdb1: Moved: 0.00%  /dev/sdb1: Moved: 100.00%[root@centos7 ~]$ pvs                                                      # 確保pv都是空的,沒(méi)有數(shù)據(jù)存放了。  PV         VG         Fmt  Attr PSize    PFree     /dev/sdb1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sdb2             lvm2 ---     1.00g    1.00g  /dev/sdc1  vg_test_01 lvm2 a--  1020.00m 1016.00m  /dev/sdc2             lvm2 ---     1.00g    1.00g  /dev/sdd1  vg_test_01 lvm2 a--  1020.00m       0   /dev/sdd2  vg_test_01 lvm2 a--    <5.00g   <5.00g  /dev/sde1  vg_test_01 lvm2 a--  1020.00m 1020.00m  /dev/sde2             lvm2 ---     2.00g    2.00g
          [root@centos7 ~]$ vgreduce vg_test_01 /dev/sd{b1,c1,e1} # 縮減vg 去除b1,c1,e1 Removed "/dev/sdb1" from volume group "vg_test_01" Removed "/dev/sdc1" from volume group "vg_test_01" Removed "/dev/sde1" from volume group "vg_test_01"[root@centos7 ~]$ pvremove /dev/sd{b1,c1,e1} # 移除pv,這里提示, Lables on physical volume "/dev/sdb1" sucdessfully wiped. Labels on physical volume "/dev/sdc1" successfully wiped. Labels on physical volume "/dev/sde1" successfully wiped.


          導(dǎo)出vg

          [root@centos7 ~]$ vgdisplay                                       # 導(dǎo)出前的確認(rèn)  --- Volume group ---  VG Name               vg_test_01  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  24  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               0  Max PV                0  Cur PV                2  Act PV                2  VG Size               5.99 GiB  PE Size               4.00 MiB  Total PE              1534  Alloc PE / Size       256 / 1.00 GiB  Free  PE / Size       1278 / 4.99 GiB  VG UUID               sZwHea-LabA-SJaV-Wz40-qFp3-Um2w-pvmJAY   [root@centos7 ~]$ vgexport vg_test_01                                    # 導(dǎo)出vg發(fā)現(xiàn)有激活的設(shè)備,需要關(guān)閉  Volume group "vg_test_01" has active logical volumes[root@centos7 ~]$ vgchange -an vg_test_01                                # 設(shè)置為非激活  0 logical volume(s) in volume group "vg_test_01" now active[root@centos7 ~]$ vgexport vg_test_01                                    # 導(dǎo)出, 要看到成功導(dǎo)出才可以,這里注意了, 如果這個(gè)vg名字和目標(biāo)機(jī)器有重名的話, 這里使用rename改下在導(dǎo)出  Volume group "vg_test_01" successfully exported
          [root@centos7 ~]$ sync # 多執(zhí)行幾次sync。防止內(nèi)存和磁盤沒(méi)有同步的問(wèn)題。[root@centos7 ~]$ sync[root@centos7 ~]$ sync[root@centos7 ~]$ sync


           

          我這里把這個(gè)磁盤取出來(lái)安裝到另外一個(gè)機(jī)器上面。下面的一部分操作在新機(jī)器上執(zhí)行。注意啦。

          識(shí)別硬件


          [root@centos6 ~]$ /git/Bash/other/scan_scsi_device.sh                             # 執(zhí)行下掃描硬件腳本,我自己寫的,后面把這個(gè)bash腳本貼出來(lái)start scan/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan scan finished./sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan scan finished./sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan scan finished.end  scanplease use lsblk check[root@centos6 ~]$ lsblk                                                           # 使用lsblk查看,可以發(fā)現(xiàn),識(shí)別出來(lái)就是那個(gè)/dev/sdcNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsr0     11:0    1  3.7G  0 rom  /media/CentOS_6.9_Finalsr1     11:1    1  8.1G  0 rom  /media/CentOS 7 x86_64sda      8:0    0  200G  0 disk ├─sda1   8:1    0    1G  0 part /boot├─sda2   8:2    0 48.8G  0 part /├─sda3   8:3    0 19.5G  0 part /app├─sda5   8:5    0    2G  0 part [SWAP]├─sda4   8:4    0    2M  0 part └─sda6   8:6    0    1G  0 part sdb      8:16   0  100G  0 disk ├─sdb1   8:17   0    1G  0 part ├─sdb2   8:18   0   20G  0 part ├─sdb3   8:19   0    1G  0 part ├─sdb4   8:20   0    1K  0 part ├─sdb5   8:21   0   20G  0 part ├─sdb6   8:22   0    1G  0 part └─sdb7   8:23   0    1G  0 part sr2     11:2    1  3.7G  0 rom  /media/CentOS_6.9_Final_sr3     11:3    1    2G  0 rom  /media/CentOS_6.9_Final__sdc      8:32   0   20G  0 disk ├─sdc1   8:33   0    1G  0 part └─sdc2   8:34   0    5G  0 part

          腳本內(nèi)容如下

          [root@centos6 ~]$ cat /git/Bash/other/scan_scsi_device.sh #!/bin/bash#================================================#FileName   :scan_scsi_device#Author     :zhaojiedi#Description:如果你添加了一個(gè)新的硬盤設(shè)備, 但是沒(méi)有被系統(tǒng)識(shí)別,使用如下腳本可以識(shí)別出來(lái), #DateTime   :2017-11-30 18:03:27#Version    :V1.0#Other      :最新版本建議從這里獲取https://github.com/zhaojiedi1992/Bash#================================================#!/bin/bashecho "start scan"for i in `find /sys/devices/ -name scan`; do     echo "- - -" > $i    echo  $i scan finished.doneecho "end  scan"echo -e "\033[32mplease use lsblk check\033[0m"


          導(dǎo)入并掛載


          [root@centos6 ~]$ vgscan                                               # vg掃描  Reading all physical volumes.  This may take a while...  Found exported volume group "vg_test_01" using metadata type lvm2[root@centos6 ~]$ pvscan                                               # pv掃描  PV /dev/sdc1    is in exported VG vg_test_01 [1020.00 MiB / 0    free]  PV /dev/sdc2    is in exported VG vg_test_01 [5.00 GiB / 4.99 GiB free]  Total: 2 [5.99 GiB] / in use: 2 [5.99 GiB] / in no VG: 0 [0   ][root@centos6 ~]$ vgimport vg_test_01                                  # 確認(rèn)無(wú)錯(cuò)誤的就導(dǎo)入。  Volume group "vg_test_01" successfully imported[root@centos6 ~]$ vgs                                                  # 查看下vg信息  VG         #PV #LV #SN Attr   VSize VFree  vg_test_01   2   1   0 wz--n- 5.99g 4.99g[root@centos6 ~]$ vgchange -ay vg_test_01                              # 激活vg  1 logical volume(s) in volume group "vg_test_01" now active[root@centos6 ~]$ mkdir /mnt/new_test                                  # 創(chuàng)建掛載點(diǎn)[root@centos6 ~]$ mount /dev/vg_test_01/lv_test_01  /mnt/new_test/     # 掛載[root@centos6 ~]$ du -sh /mnt/new_test/                                # 確認(rèn)文件沒(méi)有丟失45M    /mnt/new_test/

          快照LVM

          分析下當(dāng)前環(huán)境,我把vg移動(dòng)到centos6上了。一下操作在centos6上執(zhí)行的。


          [root@centos6 ~]$ vgs                                        # 查看下vg信息, 一共6G,還有5G呢。  VG         #PV #LV #SN Attr   VSize VFree  vg_test_01   2   1   0 wz--n- 5.99g 4.99g[root@centos6 ~]$ pvs                                       # 有2個(gè)pv  PV         VG         Fmt  Attr PSize    PFree  /dev/sdc1  vg_test_01 lvm2 a--u 1020.00m    0   /dev/sdc2  vg_test_01 lvm2 a--u    5.00g 4.99g

          我們剛才給/mnt/new_test目錄掛載邏輯卷vg_test_01。假如我們的/mnt/new_test的內(nèi)容一直在變化。想去備份數(shù)據(jù)就需要快照卷了。

          創(chuàng)建快照

          [root@centos6 etc]$ lvcreate  -L 500M -s -p r -n vg_test_01_snapshot /dev/vg_test_01/lv_test_01       # -L指定大小, -s 表示創(chuàng)建快照而不是普通邏輯卷,-p r 指定權(quán)限為只讀的, -n指定名字  Logical volume "vg_test_01_snapshot" created.

          注意:如果使用的xfs文件系統(tǒng), 掛載的時(shí)候需要加入nouuid,ro選項(xiàng),且創(chuàng)建快照的時(shí)候不能指定-p r選項(xiàng)。具體參考:http://tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html

          模擬一些數(shù)據(jù)修改操作

          [root@centos6 etc]$ echo "zhaojiedi1992" >>/mnt/new_test/zhaojiedi1992.txt                            # 制作一些修改情況[root@centos6 etc]$ vim /mnt/new_test/etc/motd

          監(jiān)控快照情況


          [root@centos6 ~]$ lvdisplay  /dev/vg_test_01/vg_test_01_snapshot   --- Logical volume ---  LV Path                /dev/vg_test_01/vg_test_01_snapshot  LV Name                vg_test_01_snapshot  VG Name                vg_test_01  LV UUID                pZ8x2u-lqPA-uLef-P816-dS8V-wZ0y-PKWWwL  LV Write Access        read only                                         #只讀的  LV Creation host, time centos6.magedu.com, 2017-12-02 06:11:56 +0800  LV snapshot status     active destination for lv_test_01                 # 這是lv_test_01的快照  LV Status              available  # open                 0  LV Size                1.00 GiB                                          # 快照的總大小  Current LE             256  COW-table size         500.00 MiB  COW-table LE           125  Allocated to snapshot  0.01%                                             # 這個(gè)地方可以看當(dāng)前快照占用情況。  Snapshot chunk size    4.00 KiB  Segments               1  Allocation             inherit  Read ahead sectors     auto  - currently set to     256  Block device           253:3


          掛載快照并備份

          [root@centos6 etc]$ mkdir /mnt/test_bak                                            # 創(chuàng)建一個(gè)快照掛載目錄[root@centos6 etc]$ mount /dev/vg_test_01/vg_test_01_snapshot  /mnt/test_bak/      # 掛載,因?yàn)槲覀兩厦鎰?chuàng)建快照的時(shí)候指定-pr只讀的mount: block device /dev/mapper/vg_test_01-vg_test_01_snapshot is write-protected, mounting read-only[root@centos6 etc]$ cat /mnt/test_bak/                                             # 快照后的zhaojiedi1992.txt沒(méi)有的。etc/        lost+found/ [root@centos6 etc]$ cat /mnt/test_bak/etc/motd                                     # 這個(gè)地方的文件也是快照前的樣子。沒(méi)有問(wèn)題Welcom you this system[root@centos6 etc]$ tar -jcvf /root/test.tar.bz --acl --selinux  --xattrs /mnt/test_bak/   # 備份數(shù)據(jù)趕緊的

          移除快照

          [root@centos6 etc]$ umount /mnt/test_bak/                                    # 取消掛載[root@centos6 etc]$ lvremove /dev/vg_test_01/vg_test_01_snapshot             # 移除了快照卷Do you really want to remove active logical volume vg_test_01_snapshot? [y/n]: y  Logical volume "vg_test_01_snapshot" successfully removed

          鏈接:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_042_lvm.html

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 103
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91男女操逼的视频 | 少妇白洁视频 | 导航黄色一级片 | 欧美精品无码视频 | www亚洲色 |