在RHEL 7 / CentOS 7中增加/擴展XFS文件系統

本指南將說明如何在不重新啓動的情況下在VMWare虛擬機上擴展XFS文件系統。

驗證您的服務器是否具有XFS文件系統(您應該在Type列中看到“xfs”):

# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/cl-root xfs 143G 27G 117G 19% /

devtmpfs devtmpfs 908M 0 908M 0% /dev

tmpfs tmpfs 918M 4.0K 918M 1% /dev/shm

tmpfs tmpfs 918M 90M 828M 10% /run

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

/dev/sda1 xfs 1014M 184M 831M 19% /boot

/dev/mapper/cl-home xfs 8.0G 33M 8.0G 1% /home

tmpfs tmpfs 184M 0 184M 0% /run/user/0

要增加虛擬機的磁盤大小,您需要執行兩個主要步驟:

  1. 首先,您需要在vSphere Client中或通過CLI增加磁盤大小。這將增加虛擬機可以看到的“硬件”磁盤。

  2. 然後,您需要通過分區來利用該額外空間。

步驟1.增加VMWare ESXi主機中的硬件磁盤大小

檢查是否可以擴展當前磁盤或是否需要添加新磁盤

這是非常重要的一步,因爲已經分區在4個主分區中的磁盤已經無法再擴展。要檢查這一點,請登錄您的服務器並fdisk -l在命令行運行。

# fdisk -l

Disk /dev/sda: 137.4 GB, 137438953472 bytes, 268435456 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000aa739

 

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 268435455 133168128 8e Linux LVM

如果它看起來像只有2個分區,則可以安全地擴展虛擬機中的當前硬盤。

但是,如果它看起來像這樣:

# fdisk -l

Disk /dev/sda: 187.9 GB, 187904819200 bytes

255 heads, 63 sectors/track, 22844 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

/dev/sda1 * 1 25 200781 83 Linux

/dev/sda2 26 2636 20972857+ 8e Linux LVM

/dev/sda3 2637 19581 136110712+ 8e Linux LVM

/dev/sda4 19582 22844 26210047+ 8e Linux LVM

它將向您顯示系統上已有4個主分區,您需要向虛擬機添加新的虛擬磁盤。您仍然可以使用額外的虛擬磁盤來增加LVM大小,所以不用擔心。

將磁盤空間添加到虛擬機

使用VMWare vSphere Client,打開虛擬機的屬性並增加預配置大小。

如果“預配置大小”區域(右上角)顯示爲灰色,請考慮先關閉VM(如果它不允許“熱添加”磁盤/大小),並檢查是否有任何由該VM構成的快照。只要有可用的快照,就無法增加磁盤大小。

或者,如果您已有4個主分區,則還可以選擇“添加...”以將新硬件“虛擬磁盤”添加到VM,並具有所需的額外空間。

步驟2.在虛擬機中擴展分區

對未分配空間進行分區:如果增加了磁盤大小

在VMware中更改磁盤大小後,如果必須將其關閉以增加vSphere中的磁盤大小,請再次啓動VM。如果您重新啓動了服務器,則無需像啓動時那樣重新掃描SCSI設備。如果未重新啓動服務器,請重新掃描SCSI設備。

首先,檢查scsi設備的名稱。

# ls /sys/class/scsi_device/

1:0:0:0 2:0:0:0

然後重新掃描scsi總線。在這臺機器上,我們有兩個設備。執行以下命令重新掃描它們。下面你可以用上一個命令找到的實際scsi總線名替換'1:0:0:0'。每個冒號前面都有一個斜線,這使它看起來很奇怪。

# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan

# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

這將重新掃描當前的scsi總線,並且將顯示已更改的磁盤大小。

執行fdisk -l以檢查虛擬機是否可見新大小:

# fdisk -l

Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors

對未分配空間進行分區:如果已添加新磁盤

如果您在服務器上添加了新磁盤,則操作類似於上述操作。但是,不必像之前的show那樣重新掃描現有的scsi總線,而是必須重新掃描主機,以便在添加新磁盤時檢測新的scsi總線。

# ls /sys/class/scsi_host/

total 0

drwxr-xr-x 3 root root 0 Feb 13 02:55 .

drwxr-xr-x 39 root root 0 Feb 13 02:57 ..

drwxr-xr-x 2 root root 0 Feb 13 02:57 host0

您的主機設備被調用host0,重新掃描它:

# echo "- - -" > /sys/class/scsi_host/host0/scan

它不會顯示任何輸出,但運行fdisk -l將顯示新磁盤。

創建新分區

重新掃描完成後(應該只需幾秒鐘),您可以檢查是否可以在磁盤上看到額外的空間。

# fdisk -l

Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000aa739

 

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 268435455 133168128 8e Linux LVM

使用fdisk,在/dev/sda設備上創建一個新分區。輸入n,以創建新分區:

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Command (m for help): n

現在選擇p創建一個新的主分區。請注意,您的系統在此磁盤上只能有4個主分區!如果您已達到此限制,請創建擴展分區。

Partition type:

p primary (2 primary, 0 extended, 2 free)

e extended

Select (default p): p

選擇您的分區號碼。既然我們已經有了/dev/sda1和/dev/sda2,邏輯數量會3。

Partition number (3,4, default 3): 3

選擇新分區的第一個和最後一個扇區,如果按Enter鍵,則默認情況下新分區將使用所有可用磁盤空間。

First sector (268435456-335544319, default 268435456): <ENTER>

Using default value 268435456

Last sector, +sectors or +size{K,M,G} (268435456-335544319, default 335544319): <ENTER>

Using default value 335544319

Partition 3 of type Linux and of size 32 GiB is set

現在鍵入t以更改分區類型。出現提示時,輸入您剛剛在前面的步驟中創建的分區的編號。當您被要求輸入“十六進制代碼”時,請輸入8e,然後按Enter鍵確認。

Command (m for help): t

Partition number (1-3, default 3): 3

Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'

在fdisk中返回主命令後,鍵入w將分區寫入磁盤。您將收到有關仍在使用舊分區表的內核的消息,並重新啓動以使用新表。不需要重新啓動,因爲您還可以使用重新掃描這些分區partprobe。

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

運行以下命令以掃描新創建的分區:

# partprobe -s

/dev/sda: msdos partitions 1 2 3

如果這對您不起作用,您可以嘗試使用“partx”重新掃描設備並添加新分區。在下面的命令中,將/ dev / sda更改爲剛剛添加新分區的磁盤。

# partx -v -a /dev/sda

如果仍然沒有顯示您要使用的新創建的分區,則必須重新啓動服務器。然後,您可以使用fdisk查看新創建的分區。

# fdisk -l

Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000aa739

 

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 268435455 133168128 8e Linux LVM

/dev/sda3 268435456 335544319 33554432 8e Linux LVM

使用新分區擴展邏輯卷

現在,創建物理卷作爲LVM的基礎。請將/ dev / sda3替換爲新創建的分區。

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

# pvdisplay

現在瞭解您的卷組的調用方式。在我們的示例中,它具有名稱cl

# vgdisplay

--- Volume group ---

VG Name cl

...

讓我們通過向其添加新創建的物理捲來擴展該卷組。

# vgextend cl /dev/sda3

Volume group "cl" successfully extended

有了pvscan,我們可以看到我們新增的物理卷和可用空間(在這種情況下爲32GB)。

# pvscan

PV /dev/sda2 VG cl lvm2 [127.00 GiB / 4.00 MiB free]

PV /dev/sda3 VG cl lvm2 [32.00 GiB / 32.00 GiB free]

Total: 2 [158.99 GiB] / in use: 2 [158.99 GiB] / in no VG: 0 [0 ]

現在我們可以擴展邏輯卷(而不是我們之前添加到組中的物理卷)。

首先,檢查system using命令上可用的邏輯卷ls /dev/VolGroupName(在我們的示例卷組名稱中cl):

# ls /dev/cl

home root swap

我們有home,root和swap邏輯卷。要擴展邏輯卷root,請執行以下命令:

# lvextend /dev/cl/root /dev/sda3

Size of logical volume cl/root changed from 111.00 GiB (28415 extents) to 142.99 GiB (36606 extents).

Logical volume cl/root successfully resized.

# lvdisplay

現在剩下的就是將文件系統的大小調整爲卷組,因此我們可以使用該空間。執行xfs_growfs如下所示的命令(替換cl-root爲系統上的卷組名稱)。

# xfs_growfs /dev/mapper/cl-root

meta-data=/dev/mapper/cl-root isize=512 agcount=4, agsize=7274240 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

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

= sunit=0 swidth=0 blks

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

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

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

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

data blocks changed from 29096960 to 37484544

 

針對RHEL6 擴展ext4 

現在剩下的就是它將文件系統的大小調整爲卷組,因此我們可以使用該空間。使用系統上的卷組名稱替換正確/ dev設備的路徑。

# resize2fs /dev/vg_miarec/lv_root

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/vg_miarec/lv_root is mounted on /; on-line resizing required

old desc_blocks = 4, new_desc_blocks = 6

Performing an on-line resize of /dev/vg_miarec/lv_root to 21493760 (4k) blocks.

The filesystem on /dev/vg_miarec/lv_root is now 21493760 blocks long.

 

執行df -h以確認虛擬機可以使用新磁盤大小。

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/cl-root 143G 27G 117G 19% /

devtmpfs 908M 0 908M 0% /dev

tmpfs 918M 4.0K 918M 1% /dev/shm

tmpfs 918M 89M 830M 10% /run

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

/dev/sda1 1014M 184M 831M 19% /boot

/dev/mapper/cl-home 8.0G 33M 8.0G 1% /home

tmpfs 184M 0 184M 0% /run/user/0

轉載於https://www.linuxtechi.com/create-extend-xfs-filesystem-on-lvm/

 

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