centos6 中減少硬盤分區容量控制,調整LVM邏輯分卷的大小。(xfs與ext4不同文件系統)

 很久沒有學習centos的指令和操作了,最近忙於做監控,音頻廣播信號的項目,很少涉及服務器的項目,漸漸的遠離和疏忽指令。今天對各個知識點又惡補一些,寫點東西來分享。

lvm是邏輯分區意思,我記得在centos6裏面有出現lvm的分區,redhat5 裏面好像沒有。能解答的朋友麻煩告訴我下。

xfs和ext2.3.4文件系統的不同,簡單來說(抄別人的。哈哈,也可以百度吧):

xfs是一種非常優秀的日誌文件系統,基於系統位數限制的文件類型,xfs是一個64位文件系統,最大支持8EB減1字節的單個文件系統,實際部署時取決於宿主操作系統的最大塊限制。對於一個32位Linux系統,文件和文件系統的大小會被限制在16TB
xfs在很多方面確實做的比ext4好,ext4受限制於磁盤結構和兼容問題,可擴展性和scalability確實不如xfs,另外xfs經過很多年發展,各種鎖的細化做的也比較好

ext4是第四代擴展文件系統(英語:Fourth EXtended filesystem,縮寫爲ext4)是linux系統下的日誌文件系統,是ext3文件系統的後繼版本
ext4的文件系統容量達到1EB,而文件容量則達到16TB,這是一個非常大的數字了。對一般的臺式機和服務器而言,這可能並不重要,但對於大型磁盤陣列的用戶而言,這就非常重要了。
ext3目前只支持32000個子目錄,而ext4取消了這一限制,理論上支持無限數量的子目錄

1)ext2/ext3/ext4文件系統的調整命令是resize2fs(增大和減小都支持)

lvextend -L 200G /dev/mapper/centos-home     //增大至200G

lvextend -L +30G /dev/mapper/centos-home     //增加30G

lvreduce -L 40G /dev/mapper/centos-home      //減小至40G

lvreduce -L -10G /dev/mapper/centos-home      //減小10G

resize2fs /dev/mapper/centos-home            //執行調整

2)xfs文件系統的調整命令是xfs_growfs(只支持增大)

lvextend -L 120G /dev/mapper/centos-home    //增大至120G

lvextend -L +20G /dev/mapper/centos-home    //增加20G

xfs_growfs /dev/mapper/centos-home          //執行調整

 

就是說:xfs文件系統只支持增大分區空間的情況,不支持減小的情況(謹記謹記謹記)。

硬要減小的話,只能在減小後將邏輯分區重新通過mkfs.xfs命令重新格式化才能掛載上,這樣的話這個邏輯分區上原來的數據就丟失了。記得備份原來數據。

實例1 當系統上還有空閒的數據時候,比如系統沒有劃分到硬盤。(偷偷抄別人的,懶得在做一個系統盤了。)

1)查看分區空間。如下可知是xfs文件系統(df的-T參數就能看出文件格式)。

[root@localhost ~]# df -hT

文件系統                類型      容量  已用  可用 已用% 掛載點

/dev/mapper/centos-root xfs       200G  2.2G  198G    2% /

devtmpfs                devtmpfs   32G     0   32G    0% /dev

tmpfs                   tmpfs      32G     0   32G    0% /dev/shm

tmpfs                   tmpfs      32G   49M   32G    1% /run

tmpfs                   tmpfs      32G     0   32G    0% /sys/fs/cgroup

/dev/sda1               xfs       197M  139M   59M   71% /boot

tmpfs                   tmpfs     6.3G     0  6.3G    0% /run/user/0

/dev/mapper/centos-home xfs       628G   33M  718G    1% /home

 

2)使用vgdisplay命令查看系統上的空閒空間

root@localhost ~]# vgdisplay

  --- Volume group ---

  VG Name               centos

  System ID            

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  6

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               3

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               930.80 GiB

  PE Size               4.00 MiB

  Total PE              238285

  Alloc PE / Size       212736 / 831.00 GiB

  Free  PE / Size       25549 / 99.80 GiB       //這一項表示目前該系統上還存在99.80G的空閒空間(25549)

  VG UUID               a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF

 

3) 將上面查到的空閒空間中的90G增減到/home分區上

[root@localhost ~]# lvextend -L +90G /dev/mapper/centos-home       //或者使用-l參數(跟PE數量),即lvextend -l +25500 /dev/mapper/centos-home

  Size of logical volume centos/home changed from 628.00 GiB (160768 extents) to 718.00 GiB (183808 extents).

  Logical volume centos/home successfully resized.

 

[root@localhost ~]# xfs_growfs /dev/mapper/centos-home

meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=41156608 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0 spinodes=0

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

         =                       sunit=0      swidth=0 blks

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

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

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

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

data blocks changed from 164626432 to 188219392

 

4)再次看着系統分區,發現home分區已經增加了90G(這種方式增加後,home分區之前的數據還不會丟失)

[root@localhost ~]# df -h

文件系統                 容量  已用  可用 已用% 掛載點

/dev/mapper/centos-root  200G  2.2G  198G    2% /

devtmpfs                  32G     0   32G    0% /dev

tmpfs                     32G     0   32G    0% /dev/shm

tmpfs                     32G   49M   32G    1% /run

tmpfs                     32G     0   32G    0% /sys/fs/cgroup

/dev/sda1                197M  139M   59M   71% /boot

tmpfs                    6.3G     0  6.3G    0% /run/user/0

/dev/mapper/centos-home  718G   33M  718G    1% /home

雖然xfs文件系統只支持增加,不支持減少。但並不是說在xfs系統文件下不能減小,只是減小後,需要重新格式化才能掛載上。這樣原來的數據就丟失了!
實例2: 這種情況只適用於系統剛安裝好,邏輯分區內沒有什麼數據或數據不多且不重要可以刪除或拷貝的情況下;計劃將Home分區直接卸載,在重新從15G變成10G

root@localhost ~]# df -hT
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.8G  9.9G  33% /
tmpfs                         tmpfs    495M  224K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol04 ext4      15G   12G  2.6G  82% /home
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
[root@localhost ~]# umount /home/
umount: /home: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

[root@localhost ~]# umount /home/ -f
umount2: Device or resource busy
umount: /home: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

#### 因爲home路徑下面有文件在運行,必須找文件進行刪除纔可以卸載掉。######

root@localhost ~]# fuser -m /home/
/home/:               2657c
[root@localhost ~]# ps -aux |grep 2657
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      2657  0.0  0.1 108340  1856 pts/0    Ss+  01:07   0:00 /bin/bash
root      2789  0.0  0.0 103252   832 pts/1    S+   01:26   0:00 grep 2657
[root@localhost ~]# kill -9 2657
[root@localhost ~]# fuser -m /home/
[root@localhost ~]# umount /home/    ############已經成功卸載,fuser使用,底上上連接。
[root@localhost ~]# df -hT
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.9G  9.8G  34% /
tmpfs                         tmpfs    495M  228K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final

[root@localhost ~]# lvreduce -L -10G /dev/mapper/VolGroup-LogVol04  ####減小10G的空間
  WARNING: Reducing active logical volume to 4.65 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol04? [y/n]: y
  Reducing logical volume LogVol04 to 4.65 GiB
  Logical volume LogVol04 successfully resized

[root@localhost ~]# xfs_growfs /dev/mapper/VolGroup-LogVol04    #########顯然通過xfs方法減少不行,而且也卷組也不是XFS系統文件。
xfs_growfs: /dev/mapper/VolGroup-LogVol04 is not a mounted XFS filesystem

######如果-bash: mkfs.xfs: command not found,請[root@localhost ~]# yum -y install xfsprogs#####

[root@localhost ~]# mount /dev/mapper/VolGroup-LogVol04 /home/   #####在此將邏輯卷組掛載在home分區上
mount: wrong fs type, bad option, bad superblock on /dev/mapper/VolGroup-LogVol04,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

[root@localhost ~]# mkfs.xfs /dev/mapper/VolGroup-LogVol04 -f   ###########重新格式化
meta-data=/dev/mapper/VolGroup-LogVol04 isize=256    agcount=4, agsize=304640 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=1218560, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/mapper/VolGroup-LogVol04 /home/  ######重新在掛載一遍。
[root@localhost ~]# df -hT         ###home的分區減少了10G,數據也應該不見了。
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.9G  9.8G  34% /
tmpfs                         tmpfs    495M  228K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/VolGroup-LogVol04 xfs      4.7G   33M  4.7G   1% /home

[root@localhost ~]# mkfs.ext4 /dev/mapper/VolGroup-LogVol04 #####上面在重新格式的時候,也可以將這個格式化爲ext4格式
mke2fs 1.41.12 (17-May-2010)
/dev/mapper/VolGroup-LogVol04 is mounted; will not make a filesystem here!
[root@localhost ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Mar  1 17:03:43 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-LogVol05 /                       ext4    defaults        1 1
UUID=afb02c3f-80b5-4dff-8dc5-50b2b44df6ef /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-LogVol04 /home                   ext4    defaults        1 2
/dev/mapper/VolGroup-LogVol03 /opt                    ext4    defaults        1 2
/dev/mapper/VolGroup-LogVol06 /usr/local              ext4    defaults        1 2
/dev/mapper/VolGroup-LogVol01 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[root@localhost ~]# df -hT
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.9G  9.8G  34% /
tmpfs                         tmpfs    495M  228K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/VolGroup-LogVol04 xfs      4.7G   33M  4.7G   1% /home
[root@localhost ~]#vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39.51 GiB
  PE Size               4.00 MiB
  Total PE              10114
  Alloc PE / Size       7554 / 29.51 GiB
  Free  PE / Size       2560 / 10.00 GiB  ###還剩下減少home分區目錄下面的空間。
  VG UUID               aUO7Ph-kxhT-R7MQ-FCYG-yNez-IP7T-fuvKTf

###############################################################誤操作,正好可以引薦,把剩餘的10G分配到EXT4文件類型中了,在恢復回來。這裏運用到樓上的知識,怎麼增加,怎麼減少。################

[root@localhost ~]# lvextend -L +10G /dev/mapper/VolGroup-LogVol03  
  Extending logical volume LogVol03 to 14.88 GiB
  Logical volume LogVol03 successfully resized
[root@localhost ~]# xfs_growfs /dev/mapper/VolGroup-LogVol03 
xfs_growfs: /dev/mapper/VolGroup-LogVol03 is not a mounted XFS filesystem
[root@localhost ~]# lvextend -L -10G /dev/mapper/VolGroup-LogVol03 
  Negative argument not permitted - use lvreduce
  Run `lvextend --help' for more information.
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39.51 GiB
  PE Size               4.00 MiB
  Total PE              10114
  Alloc PE / Size       10114 / 39.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               aUO7Ph-kxhT-R7MQ-FCYG-yNez-IP7T-fuvKTf
   
[root@localhost ~]# lvreduce -L -10G /dev/mapper/VolGroup-LogVol03  ######在重新減退回來,否則沒有空的容量掛載在XFS中。
  WARNING: Reducing active and open logical volume to 4.88 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol03? [y/n]: y
  Reducing logical volume LogVol03 to 4.88 GiB
  Logical volume LogVol03 successfully resized

########################################################
[root@localhost ~]# df -hT
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.9G  9.8G  34% /
tmpfs                         tmpfs    495M  228K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/VolGroup-LogVol04 xfs      4.7G   33M  4.7G   1% /home
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39.51 GiB
  PE Size               4.00 MiB
  Total PE              10114
  Alloc PE / Size       7554 / 29.51 GiB
  Free  PE / Size       2560 / 10.00 GiB
  VG UUID               aUO7Ph-kxhT-R7MQ-FCYG-yNez-IP7T-fuvKTf
   
[root@localhost ~]# lvextend -L +10G /dev/mapper/VolGroup-LogVol04  #04卷纔是xfs的文件系統。
  Extending logical volume LogVol04 to 14.65 GiB
  Logical volume LogVol04 successfully resized
[root@localhost ~]# xfs_growfs /dev/mapper/VolGroup-LogVol04   ###控制調整,格式化XFS文件。############
meta-data=/dev/mapper/VolGroup-LogVol04 isize=256    agcount=4, agsize=304640 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=1218560, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1218560 to 3840000
[root@localhost ~]# df -hT
Filesystem                    Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol05 ext4      16G  4.9G  9.8G  34% /
tmpfs                         tmpfs    495M  228K  495M   1% /dev/shm
/dev/sda1                     ext4     485M   35M  426M   8% /boot
/dev/mapper/VolGroup-LogVol03 ext4     4.9G  583M  4.0G  13% /opt
/dev/mapper/VolGroup-LogVol06 ext4     2.4G   68M  2.2G   4% /usr/local
/dev/sr0                      iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/VolGroup-LogVol04 xfs       15G   33M   15G   1% /home

總結:XFS與EXT4文件,指令不相同也有類似的地方,合適根據文件來選擇文件系統類型來選擇。

這裏有個疑問:爲什麼已經格式化成爲EXT4文件了,但是在df顯示中還有是Xfs文件,有大神知道,麻煩告訴我一下了。

借鑑網站:https://blog.csdn.net/lengyue1084/article/details/51477872

https://blog.csdn.net/wangkai_123456/article/details/79132333

https://blog.csdn.net/shile/article/details/52919954

https://blog.csdn.net/lengyue1084/article/details/51477872

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章