天天看點

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

LVM管理和ssm存儲管理器使用&磁盤配額  (二)

内容如下:

ü  LVM快照

ü  ssm存儲管理器的使用

ü  磁盤配額

第1章 LVM快照

       lvm快照:為了保持系統的一緻性,我們先做一個快照當機目前系統狀态,這樣快照裡面的内容可暫時保持不變,系統本身繼續運作,通過備份快照來實作不中斷服務的備份。

       當建立一個snapshot的時候,僅拷貝原始卷裡資料的中繼資料(meta-data)。建立的時候,并不會有資料的實體拷貝,是以snapshot的建立幾乎是實時的,當原始卷上有寫操作執行時,snapshot跟蹤原始卷塊的改變,這個時候原始卷上将要改變的資料在改變之前被拷貝到snapshot預留的空間裡,是以這個原理的實作叫做寫時複制COW(copy-on-write)。

       在寫操作寫入塊之前,原始資料被移動到 snapshot空間裡,這樣就保證了所有的資料在snapshot建立時保持一緻。而對于snapshot的讀操作,如果是沒有修改過的塊,那麼會将讀操作直接重定向到原始卷上,如果是已經修改過的塊,那麼就讀取拷貝到snapshot中的塊

1.1 首先準備一個LV并挂載

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

1.2準備測試檔案

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

1.3 針對lv1建立一個300M快照

確定VG有空間

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

指令:lvcreate -s -n 快照名 -L 快照大小 建立快照的裝置

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

1、  LVM快照其實也是一個邏輯卷,快照隻能對邏輯卷LV進行備份,并且隻能對同一個卷組的邏輯卷進行備份,

2、  在挂載快照時,盡量使用ro的方式進行,這樣可以保證不破壞快照卷中的資料

3、  快照建立完成後是可以直接挂載的,不需要進行檔案系統格式化

4、  lvm快照是不會增長和變化的,是以它沒有永久存在的必要

[root@xuegod72 data]# lvcreate -s -n datalv_sp -L 300M /dev/datavg/data_lv

  Logical volume "datalv_sp" created.

[root@xuegod72 data]# lvs

  LV        VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

  data_lv   datavg owi-aos--- 600.00m                                                    

  datalv_sp datavg swi-a-s--- 300.00m      data_lv 0.00

[root@xuegod72 data]# lvdisplay /dev/datavg/datalv_sp

  --- Logical volume ---

  LV Path                /dev/datavg/datalv_sp

  LV Name                datalv_sp

  VG Name                datavg

  LV UUID                uRcoSc-FMYR-BRso-A5pf-0FCf-Tdig-QbU5ds

  LV Write Access        read/write

  LV Creation host, time xuegod72, 2016-12-20 20:46:13 +0800

  LV snapshot status     active destination for data_lv

  LV Status              available

  # open                 0

  LV Size                600.00 MiB

  Current LE             150

  COW-table size         300.00 MiB

  COW-table LE           75

  Allocated to snapshot  0.01%

  Snapshot chunk size    4.00 KiB

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:3

1.4 使用快照

對源LV做了快照後,我們再對這個源LV的檔案系統進行一些資料讀寫操作

[root@xuegod72 ~]# cp /etc/hosts /datalv/

[root@xuegod72 datalv]# dd if=/dev/zero of=a.txt bs=1M count=20

恢複快照:

1、直接還原

[root@xuegod72 ~]umount /datalv

==============================================

umount不成功,判斷的兩種方法:

[root@panda ~]# lsof /lv1

[root@panda ~]# fuser -ks /lv1

===============================================

在用lvconvert做快照還原時,一定要把源LV和快照LV都解除安裝再進行

 [root@xuegod72 ~]# lvconvert --merge /dev/datavg/data_lv_sp 後面跟的是快照LV

  Merging of volume data_lv_sp started.

  data_lv: Merged: 100.0%

[root@xuegod72 ~]# lvs

  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  data_lv datavg -wi-a----- 600.00m                                                   

[root@xuegod72 ~]# mount /dev/datavg/data_lv /data

[root@xuegod72 ~]# ls /data

hosts  passwd

2、挂載挂照後,進行需求還原

[root@xuegod72 ~]# mount –o nouuid,norecovery,ro /dev/datavg/data_lv_snap /data_snap

1.5 快照損壞

超出大小

[root@xuegod72 data]# dd if=/dev/zero of=aa.txt bs=10M count=1

記錄了1+0 的讀入

記錄了1+0 的寫出

10485760位元組(10 MB)已複制,0.0391211 秒,268 MB/秒

  LV      VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

  data_lv datavg owi-aos--- 600.00m                                                    

  datasp  datavg swi-I-s--- 100.00m      data_lv 100.00                                

[root@xuegod72 data]# lvdisplay /dev/datavg/datasp

  LV Path                /dev/datavg/datasp

  LV Name                datasp

  LV UUID                XKV0RX-AbJH-0AF1-wLtt-lwJl-7RdI-uAsTfM

  LV Creation host, time xuegod72, 2016-12-20 21:11:30 +0800

  LV snapshot status     INACTIVE destination for data_lv

  COW-table size         100.00 MiB

  COW-table LE           25

[root@xuegod72 ~]# lvconvert --merge /dev/datavg/datasp

  Unable to merge invalidated snapshot LV "datasp".

  Unable to merge LV "datasp" into its origin.

[root@xuegod72 ~]# mount /dev/datavg/datasp /data

mount: /dev/mapper/datavg-datasp:不能讀超級塊

LV快照的大小最好和源LV保持一緻

第2章借助ssm管理LVM卷

2.3 操作

安裝SSM

[root@xuegod72 Packages]# yum -y install system-storage-manager

檢查關于可用硬驅和LVM卷的資訊。顯示關于現有磁盤儲存設備、存儲池、LVM卷和存儲快照的資訊。

指令:

ssm list 列出資訊

2.3.1 檢視磁盤資訊

裝置資訊

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

存儲池資訊

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

卷的資訊

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

快照資訊

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

2.3.2 對VG擴容

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

[root@xuegod72 ~]# ssm add -p datavg /dev/sdb5

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22600: /usr/bin/python

  Volume group "datavg" successfully extended

2.3.3 對LV進行擴容

使用SSM擴容LV(針對建立了快照的lv無效)

通過resize進行擴容

[root@xuegod72 ~]# lvcreate -n applv -L 500M /dev/datavg

  Logical volume "applv" created.

  LV         VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

  applv      datavg -wi-a----- 500.00m                                                     

  data_lv    datavg owi-a-s--- 600.00m                                                    

  data_lv_sp datavg swi-a-s--- 100.00m      data_lv 0.00 

[root@xuegod72 ~]# ssm resize -s +500M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22907: /usr/bin/python

  Size of logical volume datavg/applv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).

  Logical volume applv successfully resized.

  LV         VG     Attr       LSize    Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

  applv      datavg -wi-a----- 1000.00m                                                     

  data_lv    datavg owi-a-s---  600.00m                                                    

  data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00

比較檔案系統容量的變化

[root@xuegod72 ~]# mkfs.xfs /dev/datavg/applv

meta-data=/dev/datavg/applv      isize=256    agcount=4, agsize=64000 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data     =                       bsize=4096   blocks=256000, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@xuegod72 ~]# mount /dev/datavg/applv /data

[root@xuegod72 ~]# df –Th /data

檔案系統                 類型      容量  已用  可用 已用% 挂載點

/dev/mapper/datavg-applv xfs       997M   33M  965M    4% /data

  applv      datavg -wi-ao---- 1000.00m                                                    

  data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00                                  

[root@xuegod72 ~]# ssm resize -s +200M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23017: /usr/bin/python

  Size of logical volume datavg/applv changed from 1000.00 MiB (250 extents) to 1.17 GiB (300 extents).

meta-data=/dev/mapper/datavg-applv isize=256    agcount=4, agsize=64000 blks

         =                       sunit=0      swidth=0 blks

log      =internal               bsize=4096   blocks=853, version=2

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 256000 to 307200

/dev/mapper/datavg-applv xfs       1.2G   33M  1.2G    3% /data

總結:使用ssm存儲管理器擴容,不需要再針對檔案系統進行擴容

2.3.4 建立一個卷

要求:建立一個名為mail 的存儲池,并在其上建立一個名為mail-lv,大小為1G的lvm卷,格式化為xfs檔案系統,并将其挂載/mail-lv目錄下

硬碟準備:

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

1)      建立目錄

[root@xuegod72 ~]# mkdir /mail-lv

用的指令如下:

ssm  create  –s  lv大小  –n  lv名稱  --fstype  lv檔案系統類型 -p 卷組名  裝置 挂載點

自動建立vg , lv ,格式化檔案系統, 自動挂載

[root@xuegod72 ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[6-7] /mail-lv

Not enough space (1024000.0 KB) in the pool 'mail' to create volume! Adjust (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

  Volume group "mail" successfully created

  Logical volume "mail-lv" created.

meta-data=/dev/mail/mail-lv      isize=256    agcount=4, agsize=63488 blks

data     =                       bsize=4096   blocks=253952, imaxpct=25

2)檢視挂載狀況

[root@xuegod72 ~]# df -Th

檔案系統                  類型      容量  已用  可用 已用% 挂載點

/dev/sda3                 xfs       197G  2.9G  194G    2% /

devtmpfs                  devtmpfs  467M     0  467M    0% /dev

tmpfs                     tmpfs     481M   84K  481M    1% /dev/shm

tmpfs                     tmpfs     481M  7.1M  474M    2% /run

tmpfs                     tmpfs     481M     0  481M    0% /sys/fs/cgroup

/dev/sr0                  iso9660   3.8G  3.8G     0  100% /media

/dev/sda1                 xfs       297M  128M  169M   44% /boot

tmpfs                     tmpfs      97M   16K   97M    1% /run/user/42

tmpfs                     tmpfs      97M     0   97M    0% /run/user/0

/dev/mapper/datavg-applv  xfs       1.2G   33M  1.2G    3% /data

/dev/mapper/mail-mail--lv xfs       989M   33M  957M    4% /mail-lv

[root@xuegod72 ~]# ssm list

--------------------------------------------------------------

Device         Free       Used      Total  Pool    Mount point

/dev/fd0                          4.00 KB                    

/dev/sda                        200.00 GB          PARTITIONED

/dev/sda1                       300.00 MB          /boot     

/dev/sda2                         2.93 GB          SWAP      

/dev/sda3                       196.78 GB          /         

/dev/sdb                         20.00 GB                    

/dev/sdb1   0.00 KB  496.00 MB  500.00 MB  datavg            

/dev/sdb2   0.00 KB  496.00 MB  500.00 MB  datavg            

/dev/sdb3   0.00 KB  496.00 MB  500.00 MB  datavg            

/dev/sdb4                         1.00 KB                    

/dev/sdb5  84.00 MB  412.00 MB  500.00 MB  datavg            

/dev/sdb6   0.00 KB  496.00 MB  500.00 MB  mail              

/dev/sdb7   0.00 KB  496.00 MB  500.00 MB  mail              

-----------------------------------------------------

Pool    Type  Devices      Free       Used      Total 

datavg  lvm   4        84.00 MB    1.86 GB    1.94 GB 

mail    lvm   2         0.00 KB  992.00 MB  992.00 MB 

----------------------------------------------------------------------------------------

Volume               Pool    Volume size  FS     FS size       Free  Type    Mount point

/dev/datavg/data_lv  datavg    600.00 MB  xfs  596.67 MB  586.54 MB  linear            

/dev/datavg/applv    datavg      1.17 GB  xfs  996.67 MB  996.54 MB  linear  /data     

/dev/mail/mail-lv    mail      992.00 MB  xfs  988.67 MB  988.54 MB  linear  /mail-lv  

/dev/sda1                      300.00 MB  xfs  296.67 MB  183.90 MB  part    /boot     

/dev/sda3                      196.78 GB  xfs  196.68 GB  193.82 GB  part    /         

---------------------------------------------------------------------

Snapshot                Origin   Pool    Volume size     Size  Type 

/dev/datavg/data_lv_sp  data_lv  datavg    100.00 MB  0.00 KB  linear

2.3.5 建立快照

ssm  snapshot快照  -s 大小  -n 名稱   建立快照的裝置

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

2.3.6 删除快照

[root@xuegod72 ~]# ssm remove /dev/mail/mail-lv-sp

Device '/dev/mail/mail-lv-sp' is mounted on '/mail-sp' Unmount (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23860: /usr/bin/python

Do you really want to remove active logical volume mail-lv-sp? [y/n]: y

  Logical volume "mail-lv-sp" successfully removed

第3章 磁盤配額

q  磁盤配額:

       利用磁盤配額這種技術,系統管理者可以限制某個使用者在某個硬碟分區可使用的大小,和可以建立檔案數量的多少;目前Linux系統和Windows系統都支援這種技術

q  磁盤配額使用條件:

       磁盤配額實施的對象是硬碟分區

       磁盤配額隻對一般身份使用者有效,對root權限使用者無效;

q  磁盤配額的限制類型

       磁盤的容量:限制使用者使用Blocks大小,限制磁盤空間的大小 預設機關是KB

       檔案的數量:限制使用者能夠擁有而檔案個數,根據i節點的數量實作對檔案數量的限制

q  磁盤配額的相關名詞解釋:

       最低限制(軟限制,soft):最低限制容量(可以被超過,但會出現警告,超過的部分會儲存到寬限時間到期)

       最高限制(硬限制,hard): 絕對禁止使用者超過硬限制,當超過時系統會給出警告資訊,并且禁止繼續寫入資料

       寬限時間:當使用者使用的空間超過了最低限制但還沒到達最高限制時,在這個寬限時間到期前必須将超額的資料降低到最低限制以下(預設為7天),當寬限時間到期,系統将自動清除超出的資料

注意:硬限制的配額值應大于相應的軟限制值,否則軟限制将失效.

3.1 RHEL7磁盤配額

n  确認配額指令已經安裝

[root@xuegod72 ~]# dmesg|grep quota

[    1.943815] VFS: Disk quotas dquot_6.5.2

[root@xuegod72 ~]# rpm -q quota

quota-4.01-11.el7.x86_64

[root@xuegod72 ~]# mount|grep quota

/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/mapper/datavg-applv on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

l  首先建立新的測試分區/data

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

n  檢視配額是否啟動

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

n  啟用配額

[root@xuegod72 ~]# umount /data

[root@xuegod72 ~]# mount -o uquota,gquota /dev/datavg/data_lv /data

[root@xuegod72 ~]# mount|grep datavg|grep quota

/dev/mapper/datavg-data_lv on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

n  設定開機自動啟動配額

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

n  設定目錄權限,并建立配額使用者

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

3.2 實驗

3.2.1 檢視配額狀态

指令:xfs_quota

xfs_quota指令用于管理XFS檔案系統的quota硬碟配額,格式為:“quota [參數] 配額 檔案系統名稱”

參數:

       -x           使用配額模式,隻有此模式才能設定配額

       -c           啟用指令模式

       report      顯示配額資訊

       limit              設定配額  

       bsoft 軟限制 (硬碟)

       bhard 硬配額

       -u 使用者

       -g 組

3.2.2 檢視使用者群組的配額資訊

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

3.2.3 設定配額

限制磁盤軟限制為10m、磁盤硬限制為50m、檔案軟限制為3個且檔案硬限制為6個

[root@xuegod72 ~]# xfs_quota -x -c 'limit bsoft=10M bhard=50M isoft=3 ihard=6 -u zhangsna' /data

[root@xuegod72 ~]# xfs_quota -x -c report /data

User quota on /data (/dev/mapper/datavg-data_lv)

                               Blocks                    

User ID          Used       Soft       Hard    Warn/Grace    

---------- --------------------------------------------------

root            10248          0          0     00 [--------]

zhangsna            0      10240      51200     00 [--------]

Group quota on /data (/dev/mapper/datavg-data_lv)

Group ID         Used       Soft       Hard    Warn/Grace    

root            10248          0          0     00 [--------]

3.2.4 驗證

1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)
1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)
1-18-2 LVM管理和ssm存儲管理器使用&磁盤配額 (二)

3.2.5 修改磁盤配額

[root@xuegod72 ~]# edquota -u zhangsna

Disk quotas for user zhangsna (uid 1001):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/mapper/datavg-data_lv      20480      10240      51200          6        3        6

[zhangsna@xuegod72 data]$ ls

aa.txt  bb.txt  cc  dd  e  f

[zhangsna@xuegod72 data]$ touch ee

[zhangsna@xuegod72 data]$ touch ff

[zhangsna@xuegod72 data]$ ls|wc -l

8

[zhangsna@xuegod72 data]$ touch gg

touch: 無法建立"gg": 超出磁盤限額

檢視所有使用者的配額資訊:

[root@panda ~]# repquota -a

*** Report for user quotas on device /dev/mapper/vg2-applv

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --       0       0       0              3     0     0      

user1     +-   15360   10240   51200  4days       1     3     7      

user2     -+       0       0       0              6     3     6  6days

檢視使用者自己的配額限制資訊:

[user2@panda lv1]$ quota

Disk quotas for user user2 (uid 1002):

     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/mapper/vg2-applv

                      0       0       0               6*      3       6   6days

用root使用者檢視單個普通使用者的配額資訊:

[root@panda ~]# quota user1

Disk quotas for user user1 (uid 1001):

                  15360*  10240   51200   4days       1       3       7       

[root@panda ~]# quota user2