關於動態調整硬碟大小:環境是linux安裝在vsphere 5.5上,在vsphere client登入vcenter後,於「主機和叢集」介面,選擇該linux虛擬機器「編輯設定」,進入到該虛擬機器內容,選擇「硬碟1」,在右邊視窗「磁碟佈建」項目內,可以動態調整硬碟大小。
我已經調整好了,但在linux內並沒有自動放大,請問我要配合什麼作業呢?
還是說這個linux guest os在一開始安裝時,就要建立LVM機制,在OS安裝好後進行系統,此時要擴大某個lv,推測大概可以採用的方式:
1、[由vsphere對此guest os新增硬碟機]>>於vsphere介面新增新的硬碟機給os(例如/dev/sdb),os重開機後辨識到,然後加入原建立的volume groups,此時這個vg可用空間就會變大,在利用lvm的相關指令,去放大所指定的lv空間,
2、[由vsphere對此guest os放大原來的硬碟機空間]>>放大了,但是後面不會作。
另外,linux安裝在vsphere作為guest os,一定要使用LVM,才有機會配合vsphere動態擴充硬碟空間
方案一︰用freebsd移植過來的zfs檔案系統。
方案二︰用還不成熟的btrfs檔案系統。
方案三︰用LVM
方案四︰不要切partition,直接整顆磁碟格式化。
方案五︰使用systemrescuecd開機再用裡面的gparted工具離線調整。
方案1-4都可線上調整,方案5針對傳統partition架構只能離線調整。
我個人採用的是方案四,系統碟用傳統方式切partition,vsphere另外給一顆磁碟當資料碟,資料碟不切partition,整顆磁碟格式化。vsphere擴大磁碟後只要resize檔案系統就可以了。指令依採用的檔案系統不同而有差異,請告知採用的檔案系統後再提供。
bruck提到:
統碟用傳統方式切partition,vsphere另外給一顆磁碟當資料碟,資料碟不切partition,整顆磁碟格式化。vsphere擴大磁碟後只要resize檔案系統就可以了。指令依採用的檔案系統不同而有差異,請告知採用的檔案系統後再提供。
您好,採用的os是rhel 5.8感謝您,再麻煩您提供指令與程序,感謝。
我目前完成的進度:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[root@localhost /]# fdisk -l /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
目前大小為5368MB,vsphere針對/dev/sdb硬碟,由5G調成8G,然後進到linux下rescan指令
下完後rescan指令後,echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan
再用fdisk -l /dev/sdb查看一次,確實有變大
[root@localhost /]# fdisk -l /dev/sdb
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
下一步就是要將這個新增的3G的空間,加入原來的5G分割區,而且原有的資料不能遺失
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我現在已經可以可以作到原有硬碟/dev/sdb ,由5g變成8G,可以從fdisk -l /dev/sdb查看到,現在要針對/dev/sdb1空間,要由5G,變成8g,卻不知從何下手了!
需要前輩高手的指點了,謝謝。
因為你有切partition /dev/sdb1 所以不能線上調整,你如果要線上調整。必須
1.刪除原本的partition
2.mkfs.ext4 /dev/sdb (整顆硬碟格式化,會有警告訊息)
3.mount /dev/sdb /mnt/test
4.調整磁碟大小
5.echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan
6.resize2fs /dev/sdb
如果要保留原本切一個partition的架構操作步驟
1.卸載/dev/sdb1
2.使用fdisk刪除/dev/sdb1的磁區
3.使用fdisk重新建立/dev/sdb1的磁區,一定要建比原本磁區大資料才不會遺失
4.resize2fs /dev/sdb1
5.重新掛載 /dev/sdb1
Dear bruck:
感謝您,您真強,我先試試看,知道方法後,其他的細節我自已來測試,按您的說明,確實完全符合我目前所需,讚!網路上還是有很多熱心的高手,感謝、感謝!至於其他熱心網友,雖然提供的不是所需求的資訊,但也感謝他們。
感謝bruck,我剛剛實機測試過了,正如你所言,完全沒有問題,而且我是作7T,擴增到8T,一切順利。當然要使用vsphere web client 來建立超過2.2T的disk,要動態放大是不行的,只能將guest os關機後進行。給您按讚,感謝您為我解答,再次感謝您。
大大好:
我要保留原本切一個partition(dev/sdb1)的架構來增大VM上的Linux硬碟空間,依此篇所述之步驟執行,執行到:
3.使用fdisk重新建立磁區
後,fdisk -l /dev/sdb1確認空間已有增大,但是執行到:
4.resize2fs /dev/sdb1
卻出現以下訊息:
resize2fs: Filesystem has unsupported feature(s) while trying to open /dev/sdb1
Couldn't find valid filesystem superblock.
請問該如何解決,謝謝!
(/dev/sdb1已經有umount,也確認檔案格式為ext4)
可能是重切磁區時,磁區開頭被切到了,改用其它分割工具(parted)試試。或是刪除磁區後用testdisk還原磁區,確認磁區開頭位置後再重來一次。
終於試出來了,自己上來註記一下~
原來還有1個指令叫resize4fs,是專門給ext4檔案格式用的~
步驟如下:
1.確定該volume已經umount
2.e4fsck -p /dev/sdb1
3.resize4fs /dev/sdb1
4.跑完後再mount起來就會發現儲存空間已增大~
hon2006提到:
http://www.simplehelp.net/2008/11/04/how-to-resize-linux-partitions-using-gparted/
不是要這個,主要是想問,正確的resize的程序,配合vsphere,應該怎麼作才是對的。
windows的一定要2008以上才可以,在vsphere介面,將此guest os的硬碟空間調大,然後進到os進面,在「磁碟管理工具」,會看到擴充的空間還沒有被分割,對欲擴大空間的磁碟按右鍵,選「延伸磁碟空間」,選擇剛剛那個未分割的磁碟空間進行延伸,這樣就完成了。
現在對linux該如何操作,(正確配合vsphere的方式)不清楚,想要知道一下,謝謝各位大大,若有經驗還請分享
虛擬機根實體機 resize 應該是差不多的,
vsphere 應該沒出一鍵就可以完成這種功能