一般業務初期,由于業務量不大,沒有做長遠考慮,導致有些服務器磁盤容量配置比較小。
但是隨著業務量起來,各種數據量也越來越大,此時我們的硬盤容量已經無法滿足,日益新增的數據。
那么問題來了?現在怎么擴容硬盤?
難道買一塊更大的硬盤,然后分區格式化,重新掛載把數據遷移過去?這種方案顯然可以實現,但是數據不停的在新增,怎么保證遷移的數據和源數據一致呢?那就只有把業務停了,再遷移數據了,但是這樣又對業務造成了影響。那么非要這么干,只有就等到夜深人靜,大家都睡覺的時候,你再停掉業務,慢慢遷移。
如果一開始使用了邏輯卷也沒這么多麻煩,直接擴展邏輯卷就好了。
難道除了上面的方案,就沒有其他辦法了嗎?答案是肯定有,那么接來下阿湯博客就通過實際操作來分享,在未配置LVM邏輯卷的情況下如何實現磁盤熱擴容,云服務器和Vmware虛擬機都可以。
注:在實際測試過程中,Vmware虛擬機如果只有一塊系統盤,運行中狀態無法編輯磁盤的大小,如果是兩塊硬盤,非系統盤可以直接擴容磁盤大小,實現熱擴容。
1、安裝growpart工具和resize2fs工具。
[root@amd5.cn ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@amd5.cn ~]# yum install cloud-utils-growpart xfsprogs -y
2、安裝好工具以后,擴容現有磁盤,如果是阿里云或者其他云服務器,直接在線擴容,然后服務器就自動識別了。這里主要說下Vmware的在線擴容。
①先查看服務器的磁盤容量
[root@amd5.cn ~]# fdisk -l 磁盤 /dev/sdb:42.9 GB, 42949672960 字節,83886080 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標簽類型:dos 磁盤標識符:0x65618af9 設備 Boot Start End Blocks Id System /dev/sdb1 2048 83886046 41941999+ 83 Linux 磁盤 /dev/sda:107.4 GB, 107374182400 字節,209715200 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標簽類型:dos 磁盤標識符:0x000c0b38 設備 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 84912127 41943040 83 Linux /dev/sda3 84912128 93300735 4194304 82 Linux swap / Solaris /dev/sda4 93300736 209715199 58207232 5 Extended /dev/sda5 93302784 209715199 58206208 83 Linux [root@amd5.cn ~]# df -lh | grep sdb /dev/sdb1 40G 213M 40G 1% /test
②在sdb1掛載的目錄創建一個文件。
[root@amd5.cn ~]# cat /test/m.maowutv.com.txt 阿湯博客測試文件
③登錄Vcenter把sdb 40G擴容到50G。

④、讓系統重新識別/dev/sdb磁盤。
[root@amd5.cn ~]# echo 1 > /sys/class/scsi_disk/0\:0\:1\:0/device/rescan [root@amd5.cn ~]# fdisk -l 磁盤 /dev/sdb:53.7 GB, 53687091200 字節,104857600 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標簽類型:dos 磁盤標識符:0x65618af9 設備 Boot Start End Blocks Id System /dev/sdb1 2048 83886046 41941999+ 83 Linux 磁盤 /dev/sda:107.4 GB, 107374182400 字節,209715200 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標簽類型:dos 磁盤標識符:0x000c0b38 設備 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 84912127 41943040 83 Linux /dev/sda3 84912128 93300735 4194304 82 Linux swap / Solaris /dev/sda4 93300736 209715199 58207232 5 Extended /dev/sda5 93302784 209715199 58206208 83 Linux
此時查看/dev/sdb已經比原來多了10G,說明系統已經重新讀取磁盤容量。
3、使用growpart工具擴容分區。
[root@amd5.cn ~]# growpart /dev/sdb 1 #1表示第一個分區擴容。 unexpected output in sfdisk --version [sfdisk,來自 util-linux 2.23.2] [root@amd5.cn ~]# LANG=en_US.UTF-8 [root@amd5.cn ~]# growpart /dev/sdb 1 CHANGED: partition=1 start=2048 old: size=83883999 end=83886047 new: size=104855519 end=104857567
如果執行growpart /dev/sdb 1報錯“unexpected output in sfdisk --version [sfdisk,來自 util-linux 2.23.2]”,就設置LANG=en_US.UTF-8,再執行。
4、使用resize2fs工具擴容文件系統。
①先查看分區格式。
[root@amd5.cn ~]# blkid /dev/sdb1 /dev/sdb1: UUID="7006eed9-3fb5-444c-a467-4b98fcf25cd5" TYPE="xfs"
②擴容文件系統。
[root@amd5.cn ~]# xfs_growfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=9, agsize=1310656 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=10485499, 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 10485499 to 13106939
注:如果是ext4格式,則使用resize2fs /dev/sdb1
5、查看擴容情況。
[root@amd5.cn ~]# df -h | grep sdb /dev/sdb1 50G 214M 50G 1% /test [root@amd5.cn ~]# cat /test/m.maowutv.com.txt 阿湯博客測試文件


