Linux未配置LVM邏輯卷,如何實現磁盤熱擴容

2020年10月23日14:38:56 發表評論 5,405 ℃

一般業務初期,由于業務量不大,沒有做長遠考慮,導致有些服務器磁盤容量配置比較小。

但是隨著業務量起來,各種數據量也越來越大,此時我們的硬盤容量已經無法滿足,日益新增的數據。

那么問題來了?現在怎么擴容硬盤?

難道買一塊更大的硬盤,然后分區格式化,重新掛載把數據遷移過去?這種方案顯然可以實現,但是數據不停的在新增,怎么保證遷移的數據和源數據一致呢?那就只有把業務停了,再遷移數據了,但是這樣又對業務造成了影響。那么非要這么干,只有就等到夜深人靜,大家都睡覺的時候,你再停掉業務,慢慢遷移。

如果一開始使用了邏輯卷也沒這么多麻煩,直接擴展邏輯卷就好了。

難道除了上面的方案,就沒有其他辦法了嗎?答案是肯定有,那么接來下阿湯博客就通過實際操作來分享,在未配置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。

Linux未配置LVM邏輯卷,如何實現磁盤熱擴容

④、讓系統重新識別/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 
阿湯博客測試文件
【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: