?
一、背景
? ? ? ? linux使用中經(jīng)常遇到磁盤空間不足,需要對(duì)磁盤進(jìn)行擴(kuò)容。根據(jù)自己的經(jīng)驗(yàn)進(jìn)行歸納整理,多種場(chǎng)景,幫助需要者和備查
本文執(zhí)行的命令,均在centos7 環(huán)境下運(yùn)行的,其他環(huán)境思路和相似,命令基本一致。
分區(qū)情況說(shuō)明:
sda是單獨(dú)的一塊磁盤總大小50G,sda1、sda2是兩個(gè)分區(qū),sda2下面有三個(gè)邏輯分區(qū)centos-root 、centos-home、centos-swap (df命令時(shí)可以看到的掛載點(diǎn));?
centos-root?對(duì)應(yīng)的掛載點(diǎn)是?根目錄
centos-home對(duì)應(yīng)的掛載點(diǎn)是 /home
卷組名稱為centos (通過(guò)pvdisplay查看)
#!/bin/bash
1、添加新磁盤
2、fdisk -l查看磁盤被識(shí)別的名稱
# fdisk -l
3、查看一下系統(tǒng)的CPU數(shù)量:
# grep 'processor' /proc/cpuinfo
如果需要兩個(gè)線程的CPU數(shù)量時(shí):
# mkfs.xfs -f -d agcount=2 /dev/sdb1 #agcount=2 CPU個(gè)數(shù)
# 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
刷新磁盤容量
# ls /sys/class/scsi_device/
0:0:0:0 0:0:1:0 3:0:0:0
# echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan
# echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
[root@vm-210 templates]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 40G 0 lvm /
├─centos-home 253:1 0 7G 0 lvm /home
└─centos-swap 253:2 0 2G 0 lvm [SWAP]
?[root@vm-210 templates]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
#卷組名稱
VG Name centos
PV Size <49.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12543
Free PE 1
Allocated PE 12542
PV UUID 1Fpioh-HkxD-f4Pd-78An-on4A-vGS1-B9UXr4
二、場(chǎng)景
出現(xiàn)以下問(wèn)題參考文章:http://t.csdn.cn/cbViW
擴(kuò)容磁盤不顯示擴(kuò)容后的磁盤或者磁盤大小兩種情況:
????????????????情況一:修改原來(lái)磁盤大小
????????????????情況二:新增磁盤
場(chǎng)景一:將centos-home分區(qū)移動(dòng)到根分區(qū)centos-root
????????由于分區(qū)時(shí),centos-home分區(qū)空間非常大,centos-root分區(qū)非常小,需要?jiǎng)h除centos-home分區(qū),擴(kuò)容到centos-root分區(qū)
操作思路(括號(hào)中是用到的命令):
- 先備份/home下文件
- 卸載(umount) /home (注意:卸載不掉時(shí),請(qǐng)將所有使用/home的進(jìn)程關(guān)閉? 參考http://t.csdn.cn/cbViW)
- 從邏輯卷中刪除(lvremove)? home 分區(qū)
- 擴(kuò)展:將騰出的空間擴(kuò)展(lvextend)到 centos-root分區(qū)下
- 使擴(kuò)展生效(xfs_growfs)
- 注釋掉fstab中的啟動(dòng)掛載項(xiàng)
- 恢復(fù)備份數(shù)據(jù)到/home 下
詳細(xì)代碼如下:
#!/bin/bash
#【功能】 將centos-home分區(qū)的空間移動(dòng)到根centos-root分區(qū)下
#1.先備份 /home下文件: 將/home下的所有內(nèi)容備份到/backup下,下面的命令自動(dòng)創(chuàng)建/backup目錄
mkdir /backup && mv /home/* /backup
# 2.卸載 centos-home
umount /home
## 如提示失敗則用下面的命令終止/home 分區(qū)下的進(jìn)程 再進(jìn)行卸載
## fuser 安裝方法 yum install -y psmisc
## fuser -m -v -i -k /home
## 判斷是哪個(gè)進(jìn)程占用了此目錄,請(qǐng)kill掉那個(gè)進(jìn)程也可以
# 3.從邏輯卷中刪除(lvremove) centos-home 分區(qū)
echo y|lvremove /dev/mapper/centos-home
# 4.擴(kuò)展:將騰出的空間擴(kuò)展(lvextend)到 centos-root分區(qū)下
lvextend -l+100%FREE /dev/mapper/centos-root
# 5.使擴(kuò)展生效(xfs_growfs)
xfs_growfs /dev/mapper/centos-root
# 6.注釋掉fstab中的啟動(dòng)掛載項(xiàng)
sed -i 's;/dev/mapper/centos-home;#/dev/mapper/centos-home;g' /etc/fstab
# 7.恢復(fù) 原來(lái)home下的數(shù)據(jù) 并刪除/backup
mv /backup/* /home && rm -rf /backup
# 8.查看
df -H
說(shuō)明:
????????思路是一樣的,如果是其他分區(qū),請(qǐng)修改里面的分區(qū)目錄即可
場(chǎng)景二:新增磁盤擴(kuò)容到根目錄或者h(yuǎn)ome下
? ? ? ? 磁盤空間不足,新增加了一塊硬盤的場(chǎng)景。此處舉例新增的一塊磁盤名稱為/dev/sdb
操作思路(括號(hào)中是用到的命令):
- 查看磁盤情況(lsblk、fdisk -l、pvdisplay)
- 創(chuàng)建物理卷(pvcreate)
- 將磁盤擴(kuò)展到卷組(vgextend)
- 擴(kuò)展邏輯分區(qū)(lvextend)
- 使擴(kuò)展生效(xfs_growfs)
- 查看(df -H)
# 1.查看磁盤情況(lsblk、fdisk -l、pvdisplay)
lsblk
# 2.創(chuàng)建物理卷(pvcreate)
pvcreate /dev/sdb
# 3.將磁盤擴(kuò)展到卷組(vgextend)
vgextend centos /dev/sdb
# 4.擴(kuò)展邏輯分區(qū)(lvextend)
# 根據(jù)自己的情況選擇擴(kuò)容到centos-root
# 還是centos-home邏輯分區(qū),請(qǐng)修改注釋
# 100%是將所有的磁盤空間擴(kuò)容到指定分區(qū),也可以根據(jù)需要進(jìn)行調(diào)整比例
# 也支持指定大小比如10G等等(指定固定值時(shí)參數(shù)-l需要修改為-L)
lvextend -l+100%FREE /dev/mapper/centos-root
#lvextend -l+100%FREE /dev/mapper/centos-home
# 5.使擴(kuò)展生效(xfs_growfs)根據(jù)擴(kuò)容的分區(qū)進(jìn)行選擇使用
# xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root
# 6.查看(df -H)
df -H
? ? 場(chǎng)景三:在原始磁盤上增加空間(常在虛擬化環(huán)境中)
????????虛擬化或者超融合環(huán)境中、或者VMware虛擬機(jī)中;磁盤空間不足,增加了已有磁盤的大小的場(chǎng)景,把增加的空間擴(kuò)容到根目錄或者centos-home下。
操作思路(括號(hào)中是用到的命令):
方法一:fdisk進(jìn)行分區(qū),操作步驟與場(chǎng)景二基本一樣,多了一步分區(qū)
- 查看磁盤情況(lsblk、fdisk -l、pvdisplay)
- 創(chuàng)建分區(qū)(fdisk 磁盤名稱)
- 創(chuàng)建物理卷(pvcreate)
- 將磁盤擴(kuò)展到卷組(vgextend)
- 擴(kuò)展邏輯分區(qū)(lvextend)
- 使擴(kuò)展生效(xfs_growfs)
- 查看(df -H)
方法二:用parted命令調(diào)整大小
- 查看磁盤情況(parted?/dev/sda ?print free)
- 分配剩余的可用空間(parted /dev/sda resizepart 2 100%)
- 刷新物理卷(pvresize /dev/sda2)
- 擴(kuò)展邏輯分區(qū)(lvextend)
- 使擴(kuò)展生效(xfs_growfs)
- 查看(df -H)
?方法一:fdisk進(jìn)行分區(qū),操作步驟與場(chǎng)景二基本一樣,多了一步分區(qū)
# 1.創(chuàng)建分區(qū)(fdisk)
fdisk /dev/sda
#在進(jìn)入命令環(huán)境中,按n鍵 一路按回車,最后一步按w鍵保存,最后按q鍵退出
# 2.創(chuàng)建物理卷(pvcreate) sda3根據(jù)第一步中創(chuàng)建的分區(qū)名稱進(jìn)行替換
pvcreate /dev/sda3
# 3.將磁盤擴(kuò)展到卷組(vgextend) sda3根據(jù)第一步中創(chuàng)建的分區(qū)名稱進(jìn)行替換
vgextend centos /dev/sda3
# 4.擴(kuò)展邏輯分區(qū)(lvextend)
# 根據(jù)自己的情況選擇擴(kuò)容到centos-root
# 還是centos-home邏輯分區(qū),請(qǐng)修改注釋
# 100%是將所有的磁盤空間擴(kuò)容到指定分區(qū),也可以根據(jù)需要進(jìn)行調(diào)整比例
# 也支持指定大小比如10G等等(指定固定值時(shí)參數(shù)-l需要修改為-L)
lvextend -l+100%FREE /dev/mapper/centos-root
#lvextend -l+100%FREE /dev/mapper/centos-home
# 5.使擴(kuò)展生效(xfs_growfs)根據(jù)擴(kuò)容的分區(qū)進(jìn)行選擇使用
# xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root
# 6.查看(df -H)
df -H
? ?方法二:用parted命令調(diào)整大小
舉例:系統(tǒng)只有一個(gè)磁盤,2個(gè)分區(qū):需要將新擴(kuò)容的磁盤空間擴(kuò)容到分區(qū)2上,下圖中number 為2的,實(shí)際上對(duì)應(yīng)的是/dev/sda2文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-522787.html
[root@vm-210 templates]# parted /dev/sda print free
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.7GB 52.6GB primary lvm
方法二:用parted命令進(jìn)行操作
#1. 查看磁盤情況:打印可用空間
parted /dev/sda print free
#2.分配剩余的可用空間
#將剩余的可用空間分配到 /dev/sda2,根據(jù)實(shí)際修改磁盤
# resizepart 中的2 只的是第二個(gè)分區(qū)即:/dev/sda2
# 100% 將所有的空閑空間分配給/dev/sda2,也可以用單位和百分比
parted /dev/sda resizepart 2 100%
# 3.刷新物理卷
#分區(qū)的空間修改了,也要刷新一下pv物理卷的大小,這樣pv才能識(shí)別變動(dòng)的空間
pvresize /dev/sda2
# 4.查看物理卷是否變化
#查看pv中free 項(xiàng)中是否顯示了可用的空間
pvdisplay
# 5.擴(kuò)展邏輯分區(qū)
#開始增加到邏輯卷中
lvextend -l+100%FREE /dev/mapper/centos-root
# 6.使擴(kuò)展生效(xfs_growfs)
xfs_growfs /dev/mapper/centos-root
# 7.查看(df -H)
df -H
三、總結(jié)
????????自己在工作中遇到磁盤擴(kuò)容的問(wèn)題進(jìn)行了匯總。按照我的命令可以一步一步執(zhí)行,如果還想進(jìn)行了解更深,需要了解什么是物理卷(pv)、邏輯卷、邏輯分組、邏輯分區(qū)等等。
???????文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-522787.html
到了這里,關(guān)于linux磁盤擴(kuò)容:新增磁盤、原磁盤擴(kuò)容、home/root分區(qū)擴(kuò)容的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!