Linux文件目錄擴容

一、普通目錄擴容
先查看當前磁盤使用情況:

[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

創建一個/app目錄,給該目錄分配5G空間,下面開始實驗:
1、創建PV物理卷:

[root@lvm ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

2、創建VG卷組:

[root@lvm ~]# vgcreate app /dev/sdb /dev/sdc
  Volume group "app" successfully created

3、在上面app卷組基礎上創建LVM邏輯卷:

[root@lvm ~]# lvcreate -n lvapp -L 5G app
  Logical volume "lvapp" created.

4、格式化lvapp這個邏輯卷:

[root@lvm ~]# mkfs.ext4 /dev/app/lvapp 
mke2fs 1.42.9 (28-Dec-2013)
文件系統標籤=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在寫入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

5、創建一個/app目錄,並將/dev/app/lvapp掛載至/app目錄:

[root@lvm ~]# mkdir /app
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    4.8G   20M  4.6G    1% /app

下面開始測試給/app目錄擴容至6G。
6、先取消掛載:

[root@lvm ~]# umount /app/
[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

7、使用lvextend命令擴容:

[root@lvm ~]# lvextend -L 6G /dev/app/lvapp 
  Size of logical volume app/lvapp changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
  Logical volume app/lvapp successfully resized.

8、檢查磁盤完整性:

[root@lvm ~]# e2fsck -f /dev/app/lvapp 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/app/lvapp: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks

9、重置磁盤容量:

[root@lvm ~]# resize2fs /dev/app/lvapp 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/app/lvapp to 1572864 (4k) blocks.
The filesystem on /dev/app/lvapp is now 1572864 blocks long.

10、重新掛載:

[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

二、根目錄擴容
1、檢查文件系統使用情況:

[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

2、使用fdisk創建一個新的分區:

[root@lvm ~]# fdisk /dev/sdd 
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x4260a25f 創建新的 DOS 磁盤標籤。
#此處輸入n,表示創建新的分區
命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
#此處輸入p表示創建主分區
Select (default p): p
#分區號根據實際情況寫,我們這是第一次創建分區,所以默認是1,可以不寫使用默認值也行
分區號 (1-4,默認 1):1
起始 扇區 (2048-20971519,默認爲 2048):
將使用默認值 2048
#這裏行末輸入要創建多大的分區,我們選擇2G,所以輸入+2G
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,默認爲 20971519):+2G
分區 1 已設置爲 Linux 類型,大小設爲 2 GiB
#w表示寫入
命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。

3、使用pvcreate命令創建/dev/sdd1物理卷:

[root@lvm ~]# pvcreate /dev/sdd1 
  Physical volume "/dev/sdd1" successfully created.

4、vgdisplay 查看系統中的卷組,根目錄所在的卷組是centos:

[root@lvm ~]# vgdisplay 
  --- Volume group ---
  VG Name               app
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       1536 / 6.00 GiB
  Free  PE / Size       3582 / 13.99 GiB
  VG UUID               A9fjGc-PbU6-vrJv-DXy5-3hcE-Punp-ceda1p
   
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               9TVteP-AgrQ-2I0y-H4yO-5kVI-nD5l-KOI24h

5、通過 vgextend 將物理卷sdd1加入卷組centos:

[root@lvm ~]# vgextend centos /dev/sdd1 
  Volume group "centos" successfully extended

這個時候只是卷組擴大了,但根目錄所在的邏輯卷/dev/mapper/centos-root並沒有擴大,所以根目錄空間並沒有變化,下面開始擴展根目錄可用空間。

6、使用lvextend擴展/dev/mapper/centos-root邏輯卷的大小,這個要注意的是,我們上面只給卷組擴容了2G,下面擴容邏輯卷的時候,必須要小於2G,等於2G也不行:

[root@lvm ~]# lvextend -L +1G /dev/mapper/centos-root
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <18.00 GiB (4607 extents).
  Logical volume centos/root successfully resized.

7、根目錄的文件系統xfs,使用 xfs_growfs 命令重置硬盤容量:

[root@lvm ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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 4455424 to 4717568

8、查看根目錄文件系統使用情況,之前總容量是17G,可用16G,現在總容量是18G,可用17G:

[root@lvm ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   18G  1.2G   17G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

總結:
1、對於根目錄擴容,如果分區已經使用完,則需要使用fdisk命令,新建分區,然後新建PV物理卷,再將物理卷加入根目錄所在的卷組,接着再擴容邏輯卷。
2、對於普通文件目錄,如果物理卷組的空間夠用,則可以直接擴容邏輯卷組;對於有些目錄,取消掛載的話,可能會影響生產環境的業務。

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