2014-03-13 110 views
15

GCE的根磁盤大小爲10演唱會。我如何增加這個?我無法在控制檯或gcutil標誌中找到選項。這可以在AWS中輕鬆完成。Google Compute Engine中的根磁盤大小如何增加?

+0

參見[這個答案](http://stackoverflow.com/a/ 24102667/3618671)。 –

+1

[如何在Google Compute Engine上獲得更大的啓動磁盤](http://stackoverflow.com/questions/24021214/how-to-get-a-bigger-boot-disk-on-google-compute-發動機) – maljub01

回答

19
  1. 創建快照一個新的磁盤,但規模增加當這樣做
  2. 創建一個新的實例,使用新的,embiggened盤
  3. embiggen分區識別新空間(https://cloud.google.com/compute/docs/disks/persistent-disks#repartitionrootpd)(注:特別要注意起始部門,不要只是一味的打回來,但是可以盲目地回擊結束部分)
  4. sudo resize2fs/dev/sda1(注意,這一步在google雲端文檔中沒有提及)
+0

很酷。工作。但請注意需要重新啓動。 – aholbreich

+0

第四步也在雲文檔中提到。 ' 調整你的文件系統的分區的全尺寸: 用戶@ mytestinstance:〜$ sudo的resize2fs的/ dev/sda1的 resize2fs 1.42.5(29-JUL-2012) 文件系統位於/ dev/sda1的安裝在/上;需要在線調整大小 old_desc_blocks = 1,new_desc_blocks = 4 /dev/sda1上的文件系統現在爲13106944個塊。# –

+0

是的,第四步現在在那裏,它不在我寫作時。 – user1130176

1

首先用任意大小和圖像創建磁盤,然後使用Existing Disk作爲引導源創建實例。

2

由於新GCoud命令行工具,你可以選擇在實例創建啓動盤的大小和類型:https://cloud.google.com/compute/docs/disks#repartitionrootpd

文檔:https://cloud.google.com/sdk/gcloud/reference/compute/instances/create

gcloud compute instances create foo-instance --boot-disk-size 100 --image "xxxxxx" 

然後使用這些說明調整的根分區

編輯: 調整根分區的大小後,必須重新啓動實例以強制系統重新讀取分區表。這使得這個技巧在啓動腳本中無法使用(在每次啓動/重新啓動時執行)。

+0

它可用作啓動腳本,但必須小心區分當前狀態,根據磁盤的狀態執行不同的操作(或不執行任何操作)。有關更多詳細信息,請參閱[我的答案](http://stackoverflow.com/a/24102667/3618671),它鏈接到我編寫的'fdisk.sh'腳本,它完全是這樣做的。 –

1

現在你可以resize a Persistent Disk in place

gcloud compute disks resize DISK_NAME [DISK_NAME …] --size SIZE [--zone ZONE] 

這隻會重新大小的物理設備。文件系統(可能分區之後仍然需要調整)

3

這更像是@ user1130176答案的後續行爲,但如果您運行的是CentOS 7+,則需要執行以下步驟#4(擴展文件系統): xfs_growfs /dev/sda1

CentOS 7上的新磁盤類型爲xfs。希望這會有所幫助,但從所有鏈接中都不太清楚。

+0

-bash:xfs_growfs:找不到命令,該命令位於何處? – omerio

+0

如果你使用的是CentOS,你可能會使用CentOS的不同版本。基本上,如果你使用的是CentOS 6,你可以使用'resize2fs',使用CentOS你可以使用'xfs_growfs'。 –

+0

你可以查看這個自動化腳本:https://gist.github.com/OmarTrigui/7d6ec92c8f2ef83ba15b80e30fb6a5be –

29

截至2016年3月31日,您可以在不停止或重新啓動VM的情況下調整持久性磁盤在線的大小,無需拍攝快照,也無需將其恢復到較大的磁盤。

blog post announcing the feature有細節,你可以看到the docs對於如何通過控制檯執行此操作:

調整持久盤在谷歌雲平臺控制檯:

  1. 轉到VM實例頁面。
  2. 單擊要調整大小的磁盤的名稱。
  3. 在磁盤詳細信息頁面的頂部,單擊編輯。
  4. 在大小字段中,輸入磁盤的新大小。
  5. 在磁盤詳細信息頁面的底部,單擊保存以將更改應用到磁盤。
  6. 調整磁盤大小後,必須調整磁盤分區的大小,以便操作系統可以訪問其他空間。

或通過CLI:

gcloud compute disks resize example-disk --size 250 

注意some operating systems會自動調整你的重啓分區,而不需要你做任何手動操作的工具,如fdiskresize2fsxfs_growfs,所以應該只需調整磁盤大小並重新引導VM以使更改生效即可。

+0

你能舉個例子解釋一下第6點。我嘗試resize2fs,但它不適合我sudo resize2fs/dev/sda1 resize2fs 1.42.13(17-May-2015) 文件系統已經是2621179(4k)塊長。沒事做! –

+0

@AtabtabNaveed - 有些操作系統會自動爲您執行此操作,因此無需執行任何操作。分區的總大小是否與磁盤的全部大小相匹配? Ubuntu是那些可以在重新啓動時自動調整大小的系統之一(沒有'fdisk'或'resize2fs'),所以在這種情況下可能會發生這種情況。 –

+0

@AtabtabNaveed - 請參閱[本頁](https://cloud.google.com/compute/docs/disks/create-root-persistent-disks#repartitionrootpd)瞭解在重新引導期間支持自動調整大小的分區的操作系統。您可以在不重新引導的情況下使用'resize2fs'調整非根分區的大小,但如果它是引導分區,則需要重新引導,並且不需要其他命令。 –

0

其他任何人無法找到工作的答案,我發現這個腳本,有人親切地貼:

https://gist.github.com/xelwarto/6f5c6556613c9215b1e1

# Requires cloud-utils-growpart to be installed 

# Resize ROOT FS 
part=`df --output=source/|grep "/dev/"` 
if [ ! -z "$part" ] ; then 
    len=${#part} 
    p=`echo $part|cut -c$len` 
    d=`echo $part|cut -c1-$(($len-1))` 

    growpart "$d" "$p" 
    xfs_growfs "$part" 
fi 
相關問題