Linux根目錄擴容方法及其涉及的相關磁盤操作

Linux根目錄擴容方法及其涉及的相關磁盤操作

linux下與存儲相關的命令

命令 作用
free 查看內存使用情況
df 查看文件系統/掛載點的存儲使用情況
mkfs 對磁盤進行格式化
du 查看某個文件或者目錄所佔用的存儲空間大小
fdisl 查看系統所有的磁盤和磁盤分區;對物理磁盤進行分區

fdisk

fdisk -l

avatar

fdisk /dev/sdb

avatar

LVM簡介

LVM全稱Logical Volume Manager,邏輯卷管理,在linux系統下對磁盤分區進行管理的機制,是建立在物理磁盤上的抽象層。

物理卷(pv,physical volume)

可以理解爲linux下的物理磁盤或者磁盤分區,如/dev/sdb(磁盤)、/dev/sdb1(磁盤分區,通過fdisk對/dev/sdb進行操作劃分出來的磁盤分區,類似於windows下的C、D、E盤),但是和物理磁盤以及磁盤分區不同的是,物理卷含有和LVM相關的參數

卷組(vg,volume group)

由一個或者多個物理卷組成的卷組

邏輯卷(lv,logical volume)

通過卷組劃分出來的分區,可以用來建立文件系統,例如/dev/mapper/centos-root 是根目錄的文件系統掛載點,它就是建立在一個邏輯卷之上的,該文件系統的大小就是這個邏輯卷的大小

物理塊(PE,physical extent)

每個物理卷被分爲若干個物理塊,是LVM尋址中的最小單元,有唯一編號,可以設置大小,默認爲4MB

邏輯塊(LE,logical extent)

每個邏輯卷被分爲若干個邏輯卷,與PE是一一對應的

案例:centos根目錄擴容

[root@slave01 ~]# df
文件系統                  1K-塊    已用    可用 已用% 掛載點
/dev/mapper/centos-root 6981632 6086596  895036   88% /
devtmpfs                1232124       0 1232124    0% /dev
tmpfs                   1242128       0 1242128    0% /dev/shm
tmpfs                   1242128   24092 1218036    2% /run
tmpfs                   1242128       0 1242128    0% /sys/fs/cgroup
/dev/sda1                508588  124772  383816   25% /boot
tmpfs                    248428       0  248428    0% /run/user/0

可以看到根目錄只有12%的空間可用了,需要擴容一下

1.假設系統中有一塊硬盤或者虛擬機的虛擬硬盤 /dev/sdb

2.通過上面 fdisk 部分的 fdisk /dev/sdb 操作來分出一塊分區/dev/sdb1

[root@slave01 ~]# fdisk /dev/sd
sda   sda1  sda2  sdb   
[root@slave01 ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

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

Device does not contain a recognized partition table
使用磁盤標識符 0x4472a336 創建新的 DOS 磁盤標籤。

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分區號 (1-4,默認 1):1
起始 扇區 (2048-4194303,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-4194303,默認爲 4194303):+1G
分區 1 已設置爲 Linux 類型,大小設爲 1 GiB

命令(輸入 m 獲取幫助):w
The partition table has been altered!

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

[root@slave01 ~]# fdisk -l
···
磁盤 /dev/sdb:2147 MB, 2147483648 字節,4194304 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x4472a336

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
···

3.通過 pvcreate 命令創建物理卷

[root@slave01 ~]# pvcreate /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created.

4.查看剛剛創建的物理卷/dev/sdb1

[root@slave01 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               10
  Allocated PE          1912
  PV UUID               SFY7mk-Tkm3-pvih-tydL-zNaQ-3OcT-hv7hES

  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               MLLBUH-e9bY-2eMd-Lgpk-70px-4uan-nTRfHQ

5.vgdisplay 查看系統中的卷組,看到Free PE(空閒物理塊)只有10塊

[root@slave01 ~]# vgdisplay 
  --- 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               <7.51 GiB
  PE Size               4.00 MiB
  Total PE              1922
  Alloc PE / Size       1912 / <7.47 GiB
  Free  PE / Size       10 / 40.00 MiB
  VG UUID               O40ce2-OEPo-N8l1-tuu7-vmf8-kDHE-mHQdY9

6.通過 vgextend 將物理卷sdb1加入卷組centos

[root@slave01 ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended

7.再次查看卷組,可以看到Free PE(空閒物理塊)已經是265塊

[root@slave01 ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               8.50 GiB
  PE Size               4.00 MiB
  Total PE              2177
  Alloc PE / Size       1912 / <7.47 GiB
  Free  PE / Size       265 / <1.04 GiB
  VG UUID               O40ce2-OEPo-N8l1-tuu7-vmf8-kDHE-mHQdY9

8.通過 lvextend 命令擴展根目錄掛載點 /dev/mapper/centos-root

[root@slave01 ~]# lvextend -L +1G /dev/mapper/centos-root 
  Size of logical volume centos/root changed from <6.67 GiB (1707 extents) to <7.67 GiB (1963 extents).
  Logical volume centos/root successfully resized.

到此只是對邏輯捲進行了擴容,通過df還看不到根目錄的空間擴充,還要對文件系統進行擴容才能完成

9.通過 resize2fs 或者 xfs_growfs 命令對文件系統進行擴容

[root@slave01 ~]# resize2fs /dev/mapper/centos-root 
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 當嘗試打開 /dev/mapper/centos-root 時
找不到有效的文件系統超級塊.

這裏有時候使用 resize2fs 會出錯,查看一下根目錄的文件系統

查看/dev/mapper/centos-root文件系統

[root@slave01 ~]# cat /etc/fstab | grep centos-root
/dev/mapper/centos-root /                       xfs     defaults        0 0

10.看到文件系統xfs,使用 xfs_growfs 命令

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

11.df 查看擴容後的各個目錄和掛載點大小

[root@slave01 ~]# df
文件系統                  1K-塊    已用    可用 已用% 掛載點
/dev/mapper/centos-root 8030208 6090720 1939488   76% /
devtmpfs                1232124       0 1232124    0% /dev
tmpfs                   1242128       0 1242128    0% /dev/shm
tmpfs                   1242128   24096 1218032    2% /run
tmpfs                   1242128       0 1242128    0% /sys/fs/cgroup
/dev/sda1                508588  124772  383816   25% /boot
tmpfs                    248428       0  248428    0% /run/user/0

可以看到現在現在根目錄 / 現在有24%的可用空間了

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