標籤:
對大多數系統管理員來說擴充 Linux 伺服器的磁碟空間是日常的工作之一。因此這篇文章會通過使用 Linux 命令,在 CentOS 7 系統上示範一些簡單的操作步驟來擴充您的磁碟空間而不需要重啟您的生產伺服器。關於擴充和增加新的磁碟到 Linux 系統,我們會提及多種方法和多種可行性,可按您所需選擇最適用的一種。
1. 在虛擬機器用戶端擴充磁碟空間:
在為 Linux 系統增加磁碟卷之前,您首先需要添加一塊新的物理磁碟,或在 VMware vShere、VMware 工作站以及你使用的其它虛擬環境軟體中進行設定來增加一塊虛擬磁碟的容量。
Increase disk
2. 檢查磁碟空間:
運行如下命令來檢查當前磁碟空間大小。
Fdisk check
可以看到,雖然我們已經在後端給其增加到 50 GB 的空間,但此時的總磁碟大小仍然為 10 GB。
3. 擴充空間而無需重啟虛擬機器
現在運行如下命令,通過重新掃描 SCSI (註:Small Computer System Interface 小型電腦系統介面)匯流排並添加 SCSI 裝置,系統就可以擴充作業系統的物理卷磁碟空間,而且不需要重啟虛擬機器。
# ls /sys/class/scsi_host/
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
使用下面的命令來檢查 SCSI 裝置的名稱,然後重新掃描 SCSI 匯流排。
# ls /sys/class/scsi_device/
# echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
如所示,會重新掃描 SCSI 匯流排,隨後我們在虛擬機器用戶端設定的磁碟大小會正常顯示。
Rescan disk device
4. 建立新磁碟分割:
一旦在系統中可以看到擴充的磁碟空間,就可以運行如下命令來格式化您的磁碟以建立一個新的分區。請按如下操作步驟來擴充您的物理磁碟卷。
# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2) press the ‘m‘ key for help
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition‘s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
鍵入 ‘p’ 來查看當前的分區表資訊,然後鍵入 ‘n’ 鍵來建立一個新的主要磁碟分割,選擇所有可用的扇區。 使用 ‘t’ 命令改變磁碟類型為 ‘Linux LVM’,然後選擇編碼 ‘8e’ 或者預設不選,它預設的類型編碼為 ’83’。
現在輸入 ‘w’ 來儲存分區表資訊並且退出命令環境,如下示:
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)
New disk Volume
5. 建立物理卷:
根據上述提示,運行 ‘partprob’ 或 ‘kpartx’ 命令以使分區表生效,然後使用如下的命令來建立新的物理卷。
# partprobe
# pvresize /dev/sda3
要檢查新建立的卷,運行如下的命令可以看出新的物理卷是否已經被建立,是否可用。接下來,我們就可以使用這個新的物理捲來擴充 ‘centos’ 卷組了,如下示:
# pvdisplay
# vgextend centos /dev/sda3
Extend volume Group
6. 擴充邏輯卷:
現在我們使用如下的命令擴充邏輯卷,以增加我們系統正使用的磁碟空間。
# lvextend -L +40G /dev/mapper/centos-root
一旦返回增加成功的訊息,就可以運行如下命令來擴充您的邏輯卷大小。
# xfs_growfs /dev/mapper/centos-root
‘/’ 分區的大小已經成功的增加了,可以使用 ‘df’ 命令來檢查您磁碟機的大小。示。
Increase disk space
7. 通過增加新的磁碟來擴充根分區而不用重啟系統:
這是第二種方法,它使用的命令非常簡單, 用來增加 CentOS 7 系統上邏輯卷空間大小。
所以第一步是開啟您的虛擬機器用戶端的設定頁面,點擊 ‘增加’ 按紐,然後繼續下一步操作。
Add new disk
選擇新磁碟所需要的配置資訊,如所示的,選擇新磁碟的大小和它的類型。
New disk setup
然後進入服務端重複如下的命令來掃描您的磁碟裝置,以使新磁碟在系統中可見。
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
列出您的 SCSI 裝置的名稱:
# ls /sys/class/scsi_device/
# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
# fdisk -l
Scanning new disk
一旦新增的磁碟可見,就可以運行下面的命令來建立新的物理卷,然後增加到卷組,如下示。
# pvcreate /dev/sdb
# vgextend centos /dev/sdb
# vgdisplay
Extending Volume Group
現在根據此磁碟的空間大小來擴充邏輯卷,然後添加到根分區。
# lvextend -L +20G /dev/mapper/centos-root
# xfs_growfs /dev/mapper/centos-root
# df -h
Increase / Partition
參考
[1]: http://linoxide.com/author/kashifs/
[2]: https://github.com/runningwater
[3]: https://github.com/wxy
[4]: https://github.com/LCTT/TranslateProject
Centos 7 添加新磁碟