4

デフォルトのイメージには 10GB ありますが、もっと必要です (約 30GB)。そのデフォルト イメージの 1 つを使用して 30 GB のディスクを作成すると、使用可能なスペースは 30 GB ではなく 10 GB になります。debootstrap などのツールを使用してディストリビューションをインストールできることはわかっていますが、それは不必要に複雑に思えます。それを行う他の方法はありますか?

4

9 に答える 9

7

これは、これを書いている時点では新しい機能かもしれませんが、

  1. https://console.cloud.google.com/compute/
  2. 左側のメニューで [ディスク] をクリックします。
  3. 読み込まれたメイン ペインで、インスタンスをクリックします。
  4. 読み込まれた上部の水平メニューで、[編集] をクリックします。
  5. 以前のディスク サイズが編集可能になります。ディスク サイズを目的のサイズに変更します。
  6. インスタンスを再起動します (sudo restart -r now)。再起動時に、df -h は新しいディスク サイズを一覧表示します。

したがって、あなたの質問に答える 1 つの方法は、デフォルト ディスクでインスタンスを作成し、Compute Engine GUI を介して単純にサイズを変更することです。

于 2016-01-20T17:38:31.920 に答える
6

10GB を超えるブート ディスクを作成できますが、再パーティション化する必要があります。デフォルトでは、提供されている VM イメージは 10GB に拡張されるため、これらの手順を使用してを実行しfdisk、再起動してから を実行resize2fsして、使用可能なスペースをディスクのフル サイズにします。起動スクリプトを使用して、インスタンス作成の一部として実行されるように自動化できます。

編集 1:startup-script起動時にメタデータを使用して自動的にこれを行うスクリプトをオープンソース化しました。CentOS と Debian で動作することが確認されている、この質問のために特別に作成された私のGitHub リポジトリでサンプル コードを見つけることができます。fdisk.sh再パーティション化とgcloud.sh導入コマンドについては、を参照してください。

編集 2:または、追加のディスクを作成してインスタンスにアタッチすることもできますが、使用する前にフォーマットしてマウントする必要があります。

于 2014-06-08T03:17:25.107 に答える
1

ディスクを手動でサイズ変更/パーティション分割/フォーマットしたり、StackOverflow の他のすべての回答で導入された複雑な操作を行うことなく、これを簡単に行うことができます。本当に必要なことは次のとおりです。

  1. 使用するイメージに基づいて、必要な容量の新しいディスクを別途作成します。
  2. そのディスクを、作成中のインスタンスのブート ディスクとして選択します。

Google Developers Console を使用してこれを行う方法の詳細な説明は次のとおりです。

最初に、新しいインスタンスのルート パーティションとして使用する新しい空のディスクを作成する必要があります。これを行うには、Compute / Compute Engine / Disksに移動し、[新しいディスク] をクリックします。ディスクが、起動するインスタンスと同じゾーンにあることを確認してください。そうしないと、ディスクを使用できなくなります。次に、ディスクの「 Source Type 」を「 Image」に変更します。次に、適切なイメージを選択し、必要なディスク サイズを指定して、Createをクリックします。

ブートディスクの準備ができたので、新しいインスタンスを作成します ( Compute / Compute Engine / VM Instancesで [ New instance ] をクリックします)。新しいインスタンス フォームで、 [ Boot Source ]を[ Existing Disk ] に変更し、作成したばかりのディスクを選択します。

gcloudいくつかのコマンドを使用して同じことを行うのは比較的簡単です。

于 2015-01-25T13:29:16.443 に答える
1

パーティションを直接編集するよりも安全で、独自のイメージを維持する必要がない方法は、dracut の growroot モジュールと cloud-init です。

Google Compute、AWS、Azure の CentOS 6 & 7 でこれを使用しました。

## you'll need to be root or use sudo
yum -y install epel-release
yum -y install cloud-init cloud-initramfs-tools dracut-modules-growroot cloud-utils-growpart
rpm -qa kernel | sed -e 's/^kernel-//' | xargs -I {} dracut -f /boot/initramfs-{}.img {}
# reboot for the resize to take affect

パーティションは、次回の起動時に自動的にサイズ変更されます。

ノート:

  • これは Ubuntu に組み込まれているため、そこで問題が発生することはありません。
  • パーティション サイズの問題は、Google Cloud だけでなく、ほとんどのビルド済みイメージを使用する RedHat と CentOS で見られます。このメソッドはどこでも機能するはずです。
于 2015-08-31T17:37:50.177 に答える
0

最初の 2 回の起動時にサイズが変更されるように、インスタンスの「startup-script」メタデータに以下を追加しました。

# Resize /dev/sda1 primary disk partition to use full space if not already done
if [[ "$(fdisk -l /dev/sda1 | grep '^Disk.*10\.[0-9] GB' | sed 's/.*, \([0-9]*\) bytes$/\1/')" -eq 10735321600 ]]; then
  echo -e "c\nu\nd\nn\np\n1\n\n\nw\n" | fdisk /dev/sda
  reboot
elif [[ "$(df -P /dev/sda1 | tail -n +2 | awk '{print $2}')" -le 10319160 ]]; then
  resize2fs /dev/sda1
fi

これをニーズに合わせて調整し、最初にテストしてください! 私は CentOS 6 でのみテストしました。また、インスタンス ディスクを 10 GB に維持したい場合、これは必ずしも機能するとは限りません (IOPS は 200 GB 以上で最適です。したがって、IO が問題にならない場合を除き、常により大きなディスクを作成します)。

一般的なアイデアは起動スクリプトに適用できます。ディスク パーティションのサイズをチェックして、Google が提供するイメージのデフォルトよりも大きいかどうかを確認します。Google のデフォルトと同じである場合fdiskは、仮想ハードディスクで許可されている最大サイズで実行し、再起動します。次回の起動時に、ファイル システムのサイズを確認し、パーティションの最大サイズにサイズ変更します。これら 2 つのアクションが実行されると、その後の再起動ではスキップされます。

于 2015-01-15T16:12:51.513 に答える
0

ユーザー アプリケーション データを保持する追加の永続ディスクをインスタンスに追加することを検討してください。後で非常に役立つ可能性があります。アプリケーション データはさまざまな方法で進化およびスケーリングする可能性があり、もちろん選択した OS とは無関係です。例えば、その追加ディスクのスナップショットを個別に作成できます。これにより、クラウド内のデータの完全な柔軟性が得られ、データに OS を使用する必要がなくなります ;) PS もちろん、スナップショットの新しいデザインはより大きくなる可能性があります。上記の手順を参照してください

于 2014-08-19T11:51:40.690 に答える
0

まず、既存のイメージを使用して UI からディスクを作成します。インスタンスの作成時にこのイメージを使用します。

于 2015-03-09T07:21:59.823 に答える