ECS インスタンスからデータディスクをデタッチして、別のインスタンスにアタッチしたり、リリースしたりできます。このプロセスは、データを移行し、ストレージリソースを柔軟に管理するのに役立ちます。
仕組み
データディスクのデタッチには、主に 2 つのステップがあります。
オペレーティングシステムでファイルシステムをアンマウントする: これは、USB ドライブを抜く前に安全に取り出すのと似ています。この操作は、接続が切断されたときに読み取りおよび書き込み操作の中断によるデータの破損や損失がないことを保証するための命令をオペレーティングシステムに送信します。
インスタンスからデータディスクをデタッチする: これは、安全に取り出された後に USB ドライブを物理的に抜くのと似ています。この操作により、ディスクと ECS インスタンス間の接続が切断されます。
適用範囲
サブスクリプションディスクを直接デタッチすることはできません。まず、課金方法を切り替えて従量課金にする必要があります。
ローカルディスクはデタッチできません。
手順
データの損失を防ぐため、続行する前に、データディスク上のすべての読み取りおよび書き込み操作を一時停止し、それを使用しているすべてのプロセスを停止してください。
ステップ 1: オペレーティングシステムでファイルシステムをアンマウントする。
データ整合性を確保するには、まずオペレーティングシステムがデータディスクにアクセスできないようにします。インスタンスのステータスが [停止済み] の場合は、ステップ 2: 「データディスクのデタッチ」に進むことができます。
Linux
以下の手順は標準的な Linux コマンドであり、CentOS、Ubuntu、Debian などのすべての主要なディストリビューションに適用されます。
ECS インスタンスにログインします。
ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
インスタンス詳細ページに移動します。[接続] をクリックし、[Workbench 経由で接続] を選択します。プロンプトに従ってログインします。その後、Workbench ターミナルが開きます。
sudo df -hコマンドを実行して、FilesystemおよびMounted on列からデバイス名とマウントディレクトリを取得します。この例では、ターゲットデバイス
/dev/vdb1は/mntにマウントされています。$ sudo df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 868M 0 868M 0% /dev tmpfs 879M 0 879M 0% /dev/shm tmpfs 879M 508K 878M 1% /run tmpfs 879M 0 879M 0% /sys/fs/cgroup /dev/vda1 40G 2.4G 36G 7% / /dev/vdb1 40G 49M 38G 1% /mnt tmpfs 176M 0 176M 0% /run/user/0ファイルシステムをアンマウントします。
コマンド内の
<device name>変数を前のステップのデバイス名に置き換えてから、コマンドを実行します。sudo umount <device name>パーティションを正しくマウントできないためにインスタンスが再起動に失敗するのを防ぐため、自動マウント設定を確認して削除します。
cat /etc/fstabコマンドを実行して、ステップ 2 のマウントディレクトリ情報が存在するかどうかを確認します。存在しない場合は、ステップ 2: 「データディスクのデタッチ」に進みます。
存在する場合は、
sudo vi /etc/fstabコマンドを実行してファイルを編集します。マウントディレクトリを含む行の先頭に#記号を追加してコメントアウトします。ファイルを保存してから、ステップ 2: 「データディスクのデタッチ」に進みます。この例では、
UUID=32532395-51a7-46f7-b83d-181158b009a0 /mnt ext4 defaults 0 0をコメントアウトする必要があります。# /etc/fstab # anaconda によって Fri Jun 28 04:16:23 2024 に作成されました # # 参照によるアクセス可能なファイルシステムは、'/dev/disk' 以下で管理されます # 詳細については、man ページの fstab(5)、findfs(8)、mount(8)、および/または blkid(8) を参照してください # UUID=c8b5b2da-5565-4dc1-b002-2a8b07573e22 / ext4 defaults 1 1 UUID=32532395-51a7-46f7-b83d-181158b009a0 /mnt ext4 defaults 0 0 ~
Windows
このトピックでは、Windows Server 2022 を例として使用します。
ECS インスタンスにログインします。
ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
インスタンス詳細ページで、[接続] をクリックし、[Workbench 経由で接続] を選択します。接続方法を [ターミナル接続] に設定し、ユーザー名とパスワードを入力して、グラフィカルターミナルにログインします。
ディスクをオフラインにします。
アイコンを右クリックし、[ディスクの管理] を選択します。[ディスクの管理] ウィンドウで、ターゲットディスクを右クリックし、[オフライン] を選択します。

ステップ 2: データディスクをデタッチする
ECS インスタンスからデータディスクをデタッチして、ディスクとインスタンス間の接続を切断します。
ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
ターゲットインスタンス ID をクリックしてインスタンス詳細ページに移動し、[ブロックストレージ] タブをクリックします。
ターゲットディスクの [操作] 列で、[デタッチ] をクリックします。
表示されるダイアログボックスで、[デタッチの確認] をクリックします。
ディスクがデタッチされたことを確認します。
デタッチが完了したら、ECS コンソール - Elastic Block Storage - ディスク ページに移動してディスクのステータスを確認します。ディスクの [ステータス] が [利用可能] に変更された場合、ディスクはデタッチされています。
よくある質問
データディスクをデタッチした後に Linux インスタンスの再起動に失敗した場合の対処方法
この問題は通常、デタッチされたデータディスクのマウントエントリが
/etc/fstabファイルに残っているためにシステムの起動が妨げられることが原因で発生します。ファイルから古いエントリを手動で削除する必要があります。詳細については、「Linux インスタンスでの fstab 設定エラーによるシステム起動の失敗の解決策」をご参照ください。
Windows インスタンスのディスクが [デタッチ中] ステータスのままでデタッチできない場合の対処方法
原因: この問題は通常、プロセスがディスクを使用していることが原因で発生します。
解決策:
このトピックでは、Windows Server 2022 を例として使用します。
ECS インスタンスにログインします。
ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
インスタンスの詳細ページに移動します。[接続] をクリックし、[Workbench 経由で接続] を選択します。接続方法を [ターミナル接続] に設定し、ユーザー名とパスワードを入力してグラフィカルターミナルにログインします。
ディスクを使用しているプロセスに関する情報を見つけます。
アイコンを右クリックし、[イベントビューアー] を選択します。イベントビューアーウィンドウで、 を選択します。
システムログで、ディスクを使用しているプロセスの名前と ID を含むアラートを見つけます。
この例では、プロセス名は OpenHardwareMonitor.exe で、そのプロセス ID は 3980 です。

プロセスを終了します。
重要プロセスを終了すると、データ損失やビジネスの中断が発生する可能性があります。リスクを慎重に評価してください。プロセスが重要でなく、アクティブにデータを書き込んでいないことを確認してください。
アイコンを右クリックし、[タスクマネージャー] を選択します。[詳細] をクリックし、名前または ID で対象のプロセスを見つけます。
対象のプロセスを右クリックし、[タスクの終了] をクリックします。その後、再度 データディスクのデタッチ を試みます。
参考
DetachDisk API 操作を呼び出して、データディスクをデタッチできます。
デタッチしたディスクを、同じゾーン内の他の ECS インスタンスにアタッチできます。
ディスクが不要になった場合は、スナップショットを作成してデータをバックアップし、ディスクをリリースできます。