高級文件系統管理

                       設定文件系統配額node

1.分區掛載選項:linux

usrquota、grpquota   (能夠設置爲分區開機自動掛載選項)shell

2.初始化數據庫:數據庫

quotacheck  -cug dirnamevim

   -u 生成user.quota文件centos

   -g 生成group.quota文件app

3.爲用戶設定配額:dom

quotaon、quotaoff   dirname  開啓/取消配額ide

edquota  username    直接編輯當前用戶自身配額性能

              -u username   查看其它用戶磁盤配額

setquota  username  4096 5120 40 50 /foo     在shell中直接編輯

-p user1 user2     定義原始標準用戶

4.報告配額狀態:

quota  查看當前用戶配額

quota username   查看指定用戶配額

requota  掛載點     配額概述

warnquota  警報

     -u  usename (給指定用戶發郵件,在/var/mail/目錄下查看)           

    -g groupname (當組的配額超出時給組管理員發郵件,管理員需在/etc/quotagrpadmin 中指定,格式爲: groupname:username)

--------------------※實驗一:用戶磁盤配額※-----------------------

①vim /etc/fstab     在/home後設置defaults,usrquota(用戶配額),grpqu(組配額) 

②quotacheck -cug  /home    生成quota文件

③quotaon /home          開啓quota

④cd username              切換至用戶的家目錄

⑤edquota username      編輯用戶quota,其內容以下

[root@centos6 caocao]# edquota -u caocaoDisk quotas for user caocao (uid 508):                         已經有的block大小(kb)    軟限額     硬限額   已經有的inode數量    Filesystem                   blocks            soft       hard       inodes            soft       hard  /dev/sda6                       64            102400     122880          16             200        280


⑥quota -u  username  查看用戶配額

[root@centos6 ~]# quota -u caocaoDisk quotas for user caocao (uid 508):                                       寬限天數(當超出這個天數後,超出配額的文件將會被強制刪除)     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6      76  102400  122880              17     200     280


 ⑦su - username(必須交互式登陸用戶才能測試出來配額設定結果)

 測試caocao用戶的配額設定:

[root@centos6 home]# su - caocao[caocao@centos6 ~]$ for i in {18..199};do touch test$i;done  建立[caocao@centos6 ~]$ quotaDisk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6   92224  102400  122880             199     200     280       [caocao@centos6 ~]$ touch test200  [caocao@centos6 ~]$ quota       Disk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6   92224  102400  122880             200     200     280       [caocao@centos6 ~]$ touch test201           #超過限額sda6: warning, user file quota exceeded.[caocao@centos6 ~]$ quota                   #當超過限額時,file位置出現*,grace出現提示位Disk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace   /dev/sda6   92224  102400  122880             201*    200     280   7days


--------※  實驗二:遷移/home(將home由/遷移至某一分區)※--------

1.知識點及注意事項:

①生產環境中可能存在不一樣用戶同時在線訪問家目錄,這會致使家目錄掛載失敗從而遷移失敗,因此,須要切換到單用戶模式,阻止其餘用戶在線訪問。

init  0  關機

       1   單用戶模式

       3   多用戶模式

        4   用戶自定義

       5   多用戶+圖形化

       6   重啓

②此過程當中須要將新建分區掛載兩次。第一次時由於要將/home數據寫入分區。第二次將分區掛載到/home下。

2.實驗步驟:

  • init 0   進入單用戶模式

  • vim /etc/selinux/config   =permissive    關閉selinux

  • fdisk /dev/sda   建立/dev/sda6 (注意當sda5爲拓展分區時,不要選擇系統默認起始柱面,而要本身選擇起始柱面)

  • mkfs.ext4 /dev/sda6

  • df  查看/home是否被掛載,如掛載現將其卸載

  • mount /dev/sda6 /mnt       掛載分區實現數據遷移

  • cp -a /home/* /home.bak   備份/home(B_0001.gif別忘了多備份一份數據偶

  • mv /home/* /mnt  將/home下的文件移到/dev/sda6下

  • rm -rf /home     刪除/home 

  • umount /dev/sda6 卸載sda6

  • mkdir /home

  • mount /dev/sda6 /home  將sda6掛載到/home下

  • vim /etc/fstab         設置開機自動掛載sda6到/home,新增內容以下,能夠經過blkid 分區名  來查看UUID。

  • UUID="6c8be0be-d54c-4bd6-a6cb-8b6f11aacc23" /home ext4 defaults 0 2
  • 此時,/home下擁有以前的全部數據,且掛載到了sda6下,完成遷移

  • reboot  重啓

t_0026.gif思考????

當home目錄下數據較少時,咱們可經過遷移home目錄,將/home掛載到更大的分區上的方法來實現/home的擴容,但實際生產環境中可能用戶家目錄下的數據量會很是之龐大,遷移起來將會花費很是多的時間,那咱們能不能在不遷移用戶家目錄的狀況下來實現擴容呢,毫無疑問,答案是確定的,再講完下面的RAID後,LVM就會幫咱們解決這個老大難問題。

                                RAID

一:什麼是raid??

    多個磁盤合成一個「陣列」來提供更好的性能、冗餘,或者二者都提供。

二:經常使用raid類型及特色:

 spacer.gifwKiom1mjZmfBZumiAABRBYmtHLw431.png-wh_50

三:mdadm  建立軟RAID

格式:

mdadm [mode] <raiddevice> [options] <devices>

mode&&options

-C  --create  建立

    options:

    -n   所使用的塊設備的數量

    -l    指定raid級別

    -a{yes/no}         自動建立raid設備的設備文件

    -c chunk_size    指定chunk大小

    -x                     指明空閒盤的個數(熱備盤)   raid0 沒有熱備盤

-G  raid設備 -n # -c  塊設備名   往raid中添加設備(通常都要從新指定 -n)

-A   裝配

-F    監控

-f,-r,-a  管理

  -f 標記指定磁盤爲損壞

  -a 添加磁盤

  -r  移除磁盤

<raiddevice>:/dev/md#

<devices>:任意的塊設備(磁盤或磁盤分區)

注意:當使用分區組成raid設備時,要先將其分區格式轉換成raid格式,例如咱們想要新建raid0設備,有兩個分區組成,步驟以下:

  • 1.轉換分區格式

[root@centos6 ~]# fdisk /dev/sdbCommand (m for help): tSelected partition 1Hex code (type L to list codes): fdCommand (m for help): p Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  fd  Linux raid autodetect        #轉換成功,保存退出同上再轉換/dev/sdc1爲raid格式
  • 2.建立raid

           mdadm -C 

⑤查看raid信息

mdadm -D  /dev/md#  查看指定RAID的詳細信息(detail)

cat /proc/mdstat  查看md的進度

配置軟RAID

①建立一個raid5類型,md0

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  

②格式化

 mkfs.ext4 /dev/md0

③檢測

④檢查raid設備的情況

 
 

[root@centos6 ~]# mdadm -D /dev/md0

/dev/md0:

        Version : 1.2

  Creation Time : Thu Aug 10 04:24:47 2017

     Raid Level : raid5

     Array Size : 41910272 (39.97 GiB 42.92 GB)

  Used Dev Size : 20955136 (19.98 GiB 21.46 GB)       #熱備盤大小

   Raid Devices : 3

  Total Devices : 4

    Persistence : Superblock is persistent

    Update Time : Thu Aug 10 04:27:00 2017

          State : clean

 Active Devices : 3

Working Devices : 4

 Failed Devices : 0

  Spare Devices : 1

         Layout : left-symmetric

     Chunk Size : 512K

           Name : centos6.9:0  (local to host centos6.9)

           UUID : eff8381d:fb18016b:ee06c91d:ef2a7086

         Events : 20

    Number   Major   Minor   RaidDevice State

       0       8       16        0      active sync   /dev/sdb

       1       8       32        1      active sync   /dev/sdc

       4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde               #熱備盤


⑤往raid中添加新設備

mdadm  /dev/md0  -a  /dev/sdf1

軟raid的檢測和修復

①模擬故障

mdadm /dev/md0 -f /dev/sda1   模擬磁盤故障

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

②修復故障步驟:

1)替換出故障的磁盤而後開機

2)在備用驅動器上重建分區

3) mdadm /dev/md0 -a /dev/sda1 向raid設備添加磁盤

軟raid管理:

生成配置文件:

mdadm -D -s  >/etc/mdada.conf 將全部的raid信息保存到配置文件

mdadm -D -s  raid名  >>/etc/mdada.conf  將指定的raid的信息追加到配置文件

中止設備:mdadm –S /dev/md0  (stop)

激活設備:mdadm –A –s /dev/md0       

強制啓動:mdadm –R /dev/md0

刪除raid信息:mdadm --zero-superblock /dev/sdb1

注意:

當沒有生成配置文件時,停掉raid設備後再次重啓時須要指定組成RAID的磁盤名,爲了方便重啓raid,咱們能夠生成配置文件,這樣在重啓時就不須要指定磁盤,具體步驟以下:

[root@centos6 ~]# mdadm -A /dev/md0 /dev/sdb /dev/sdc /dev/sdd /dev/sde       #沒有生成配置文件以前啓動md0mdadm: /dev/md0 has been started with 3 drives and 1 spare.[root@centos6 ~]# mdadm -Ds /dev/md0 >> /etc/mdadm.conf #生成配置文件[root@centos6 ~]# mdadm -S /dev/md0     #再次關閉md0mdadm: stopped /dev/md0[root@centos6 ~]# mdadm -A /dev/md0     #不加參數,直接重啓md0,重啓成功mdadm: /dev/md0 has been started with 3 drives and 1 spare.

常見raid操做:刪除raid

1.查看raid是否掛載,如掛載,卸載raid2.查看raid的成員:[root@centos6 ~]# mdadm -D /dev/md03.關閉raid[root@centos6 ~]# mdadm -S /dev/md0   4.刪除raid信息:[root@centos6 ~]# mdadm --zero-superblock /dev/sdb[root@centos6 ~]# mdadm --zero-superblock /dev/sdc[root@centos6 ~]# mdadm --zero-superblock /dev/sdd[root@centos6 ~]# mdadm --zero-superblock /dev/sde5.刪除raid配置文件中該raid信息[root@centos6 ~]# vim /etc/mdadm.conf


                               配置邏輯卷

一:邏輯卷原理

將幾個物理分區(或磁盤)經過軟件組合成一塊獨立的大磁盤(VG),再將VG分區造成可以使用的分區(LV),最終就可以掛載使用。

二:PV    PE    VG    LV 是什麼??

PE   物理拓展塊

一個PE塊默認爲4MB,vg中最多包含65534個PE,即一個VG大小爲256G。調整PE大小能夠影響VG大小(文件系統的擴大和縮小和他有關!!!!)

PV  物理卷:

經過fdisk將分區格式化爲8e(LVM)格式,createpv將格式化後的分區轉化爲最底層的PV,以後經過它建立VG。

VG  邏輯卷組  

由多個物理的磁盤或分區組成的大磁盤(由PV組成)

LV   邏輯卷

由VG切割而成,而LV不能隨意指定大小,由於LV也是由PE組成,因此只能是4的倍數。格式爲‘/dev/vgname/lvname’。

                      wKioL1mjZ42gibaTAABshXT7ZnI235.png-wh_50    圖一

如圖一,能夠直觀反應邏輯卷彈性更改文件系統容量原理:

①VG的拓展原理:新增PV,經過這些PV使VG能夠獲取更多的PE。

②LV的拓展和縮減原理:添加所屬VG中沒有使用的PE;將LV內沒有使用的PE轉移到其餘設備以下降容量。

三:LV各組件的實現流程:

※  PV階段:

pvcreate  將物理分區新建成pv

pvscan/pvs     顯示已有的pv

pvdisplay  詳細顯示已有的pv狀態

pvremove  刪除pv(將分區的pv屬性刪除)

※  VG階段(vgname自定義):

vgcreate   新建vg

    -s 指定PE大小

vgscan      顯示系統已有vg

vgdisplay   湘詳細顯示vg信息

vgextend   拓展vg(pvs查看pv,添加沒有使用的pv到vg)

     格式:vgextend vgname pvname

vgreduce   縮減vg(刪除pv到)

vgchange   設置vg是否啓動(active)

vgremove  刪除一個vg

※   LV階段:

lvcreate  新建lv

    格式:lvcreate  -L  lv容量   -n lvname  vgname(說明lv佔用着vg中的PE)

    注意:lv容量應該是PE大小的倍數

lvscan     顯示系統中已有lv

lvdisplay  詳細顯示lv

lvextend  增容lv

lvreduce   降容lv

lvremove  刪除lv

lvresize     對lv進行容量大小調整

注:vg名爲自定義。但lv名爲/dev/vgname/lvname

到這裏,lv已經建立成功。lv建立成功後就能進入咱們熟悉的文件系統階段了。

※ lv分區的格式化、掛載。

------------------------實驗三:拓展邏輯卷-------------------------

囉嗦兩句:

不一樣於文件系統中的普通磁盤分區,lv分區能夠經過從vg中得到PE來實現擴容,這在真實生產環境中能夠說是很是方便,下面就讓咱們看看具體操做步驟吧B_0059.gif


1.fdisk         新建8e分區

2.pvcreate   新建pv

3.vgextend  將pv加到lv所屬vg中

3.lvresize     將新加入的pv中的PE加入到lv中

4.resize2fs   將文件系統的容量確實增長

題內話: resize2fs命令格式

  resize2fs [ -f ] devicename [size]

    能夠不加size選項,當加size時,就必須跟上大小單位,如M、G等,表示只向文件系統中添加指定大小的數據。

若是是xfs文件系統 用xfs_growfs,格式以下:

    xfs_growfs /dev/vg01/lv01


具體操做過程以下:

 
 

1.[root@localhost ~]# pvs     #查看已有pv

  PV         VG  Fmt  Attr PSize PFree

  /dev/sdb1  vg1 lvm2 a--  4.98g    0

  /dev/sdb2  vg1 lvm2 a--  4.98g 4.41g

2.[root@localhost ~]# fdisk -l /dev/sdb   #新建 /dev/sdb3

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048    10487807     5242880   8e  Linux LVM

/dev/sdb2        10487808    20973567     5242880   8e  Linux LVM

/dev/sdb3        20973568    31459327     5242880   8e  Linux LVM

3.[root@localhost ~]# pvcreate /dev/sdb3  #建立pv

  Physical volume "/dev/sdb3" successfully created.

[root@localhost ~]# pvs

  PV         VG  Fmt  Attr PSize PFree

  /dev/sdb1  vg1 lvm2 a--  4.98g    0

  /dev/sdb2  vg1 lvm2 a--  4.98g 4.41g

  /dev/sdb3      lvm2 ---  5.00g 5.00g

4.[root@localhost ~]# vgextend vg1 /dev/sdb3   #拓展vg

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize  VFree

  vg1   3   1   0 wz--n- 14.95g 9.39g

5.[root@localhost ~]# vgdisplay    #查看vg中PE的使用狀況

  --- Volume group ---

  VG Name               vg1

  System ID             

  Format                lvm2

  Metadata Areas        3

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                3

  Act PV                3

  VG Size               14.95 GiB

  PE Size               16.00 MiB

  Total PE              957  PE總數

  Alloc PE / Size       356 / 5.56 GiB   已使用PE個數,還有601個空餘

  Free  PE / Size       601 / 9.39 GiB

  VG UUID               HOZg8f-bPOD-DovL-t3TQ-Xhsp-pJls-4QewSF

6.[root@localhost ~]# lvresize -l +200 /dev/vg1/lv1    #lv擴容

7.[root@localhost ~]# lvdisplay   #查看lv擴容後的大小

  --- Logical volume ---

  LV Path                /dev/vg1/lv1

  LV Name                lv1

  VG Name                vg1

  LV UUID                iAzH6J-xhP6-L63H-JP6x-wOXM-Zay1-rVq36h

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2017-08-27 22:38:07 +0800

  LV Status              available

  # open                 1

  LV Size                8.69 GiB

  Current LE             556

  Segments               2

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:0

10.[root@localhost ~]# df -h

Filesystem           Size  Used Avail Use% Mounted on

/dev/sda2             47G  5.2G   42G  11% /

devtmpfs             898M     0  898M   0% /dev

tmpfs                912M  144K  912M   1% /dev/shm

tmpfs                912M  9.1M  903M   1% /run

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

/dev/sda1            1.9G  169M  1.7G   9% /boot

/dev/sda3             47G  3.7G   43G   8% /app

tmpfs                183M   20K  183M   1% /run/user/0

/dev/sr0             7.8G  7.8G     0 100% /run/media/root/CentOS 7 x86_64

/dev/mapper/vg1-lv1  5.4G   23M  5.1G   1% /mnt/lv1

到這裏,lv擴容已經完成,但真實文件系統中的容量並無增長,這是別忘了咱們要重置文件系統的lv大小

11.[root@localhost ~]# resize2fs /dev/mapper/vg1-lv1  #重置文件系統中lv大小

12.[root@localhost ~]# df -h    #拓展成功

/dev/mapper/vg1-lv1  8.5G   25M  8.0G   1% /mnt/lv1

相關文章
相關標籤/搜索