ディスクに関連する問題を解決する際、データディスクのパーティションを失うことがよくあるかもしれません。 ここでは、よくあるデータパーティション損失の問題とそれに対応する Linux のソリューションについて説明します。また、クラウドディスクのデータ損失のリスクを回避するために、よくある間違いとベストプラクティスを紹介します。
データを復元する前に、パーティションを失うデータディスクのスナップショットを作成する必要があります。 復元プロセス中に問題が発生した場合は、データディスクを復元前の状態にロールバックすることができます。
前提条件
データを復元する前に、パーティションを失うデータディスクのスナップショットを作成する必要があります。 復元プロセス中に問題が発生した場合は、データディスクを復元前の状態にロールバックすることができます。
ディスク管理ツールの紹介
次のツールのうち一つを選択して、ディスクパーティションを修正し、Linux インスタンスのデータを復元することができます。
- fdisk : Linux インスタンスにインストールされているデフォルトのパーティション分割ツールです。
- testdisk : Linux システムのディスクパーティションやデータを復元するために主に使用されます。 このツールはデフォルトでは Linux にインストールされていません。 ご自身でインストールする必要があります。 たとえば、CentOS システムでは、[yum install -y testdisk] コマンドを実行して、オンラインでインストールすることができます。
- partprobe : Linux システムにインストールされているデフォルトのツールです。 これは、システムを再起動せずにカーネルがパーティションを再読み込みできるようにするために主に使用されます。
Linux でのデータディスクのパーティションの損失とデータの復元処理
Linux インスタンスを再起動した後、データディスクのパーティションの損失またはデータ損失の問題が起こる可能性があります。 これは、etc/fstab ファイルでインスタンスの起動時にパーティションが自動的にマウントされるように設定されていないためです。 この場合、最初にデータディスクのパーティションを手動でマウントできます。 データディスクを手動でマウントする際にシステムがパーティションテーブル損失を引き起こした場合、次の3つの方法、fdisk を使用したパーティションの復元、testdisk を使用したパーティションの復元、testdisk を使用したデータの復元によって問題の解決を試みることができます。
-
fdisk を使用したパーティションの復元
データディスクをパーティション分割する場合、デフォルト値は通常、パーティションの開始セクタと終了セクタに適用されます。 その後、fdisk を使ってパーティションを復元できます。 このツールの詳細については、「Linux データディスクのフォーマットとマウント」をご参照ください。
上記の操作で問題が解決しない場合は、testdisk で復元を試すことができます。
-
testdisk を使用したパーティションの復元
ここでは、クラウドディスクデバイスの名前が /dev/xvdbであるとします。 次の手順に従って、testdisk を使用してパーティションを復元します。
- [testdisk /dev/xvdb] を実行 ( 必要に応じてデバイス名を変更 ) し、[Proceed] ( デフォルト値 ) を選択して、Enter キーを押します。
- スキャン対象のパーティションテーブルの種類を選択します。デフォルトは Intel です。 データディスクが GPT フォーマットを使用している場合は、EFI GPT を選択します。
- Analyse を選択し、Enter キーを押します。
- パーティションが見えない場合は、 Quick Search を選択し、Enter キーを押すとクイック検索ができます。
次の図に示すように、パーティション情報が返された結果に表示されます。
- パーティションを選択して Enter キーを押します。
- Writeを選択してパーティションを保存します。
注 Deeper Searchを選択して、期待するパーティションがリストされていない場合は検索を続行します。
- Y キーを押してパーティションを保存します。
- partprobe /dev/xvdbを実行 ( 必要に応じてデバイス名を変更 ) して、パーティションテーブルを手動で更新します。
- パーティションを再度マウントして、データディスクのデータを確認します。
- [testdisk /dev/xvdb] を実行 ( 必要に応じてデバイス名を変更 ) し、[Proceed] ( デフォルト値 ) を選択して、Enter キーを押します。
-
testdisk を使用したデータを復元
場合によっては、testdisk を使用してディスクパーティションをスキャンして見つけることができますが、パーティションの保存はできません。 この場合、ファイルを直接復元することを試めすことができます。 次の手順を実行します。
- 「testdisk を使用したデータを復元」で説明したステップ 1 ~ステップ 4 に従ってパーティションを検索します。
- P キーを押してファイルを一覧表示します。 返された結果を次の図に示します。
- 復元するファイルを選択して C キーを押します。
- ディレクトリを選択します。 この例では、ファイルが復元されて /home ディレクトリにコピーされます。
Copy done! 1 ok, 0 failed
が表示されれば、次の図に示すように、コピーが成功したことを示します。 - /home ディレクトリに切り替えて詳細を表示します。 ファイルが表示されている場合は、ファイルが正常に復元されたことを示しています。
よくある間違いとベストプラクティス
データはユーザーのコア資産です。 多くのユーザーが ECS 上に Web サイトとデータベース (MYSQL や MongoDB や Redis) を確立しています。 データが失われると、ユーザーのサービスに対する大きなリスクが発生する可能性があります。 よくある間違いとベストプラクティスは、次のようにまとめられています。
-
よくある間違い
Alibaba Cloud ブロックレベルストレージの最下層は、三重化技術に基づいています。 したがって、一部のユーザーは、オペレーティングシステムでデータが失われる危険性はないと考えています。 実際にはそれは誤解です。 最下層に格納されている 3 つのデータコピーは、データディスクの物理層を保護します。 ただし、ウイルス、偶発的なデータ削除、ファイルシステムの損傷など、システム内のクラウドディスクロジックに問題が発生した場合でも、データは失われる可能性があります。 データセキュリティを確保するためには、スナップショットやバックアップなどの技術を使用する必要があります。
-
ベストプラクティス
データディスクのパーティションの復元とデータの復元はデータ損失の問題を解決するための最終的な解決策ですが、それは保証されるものではありません。 ベストプラクティスに従ってデータの自動または手動スナップショットを実行し、データセキュリティを最大限に高めるためにさまざまなバックアップスキームを実行することを強く推奨します。
-
自動スナップショットの有効化
実際のサービス状態に基づいて、システムディスクとデータディスクに対して自動スナップショットが有効になります。 留意すべき点は、システムディスクが変更されたとき、インスタンスが期限切れになったとき、またはディスクが手動で解放されたときに、自動スナップショットが解放されることがあることです。
ECS コンソールにログインして ディスクの属性を変更し、[ディスクのスナップショットリリース] を有効にします。 スナップショットを保持する場合は、ディスクのスナップショットリリースを無効にします。
詳細は、「自動スナップショットに関するよくある質問」をご参照ください。
-
手動スナップショットの作成
次のような重要な操作またはリスクを伴う操作の前に、スナップショットを手動で作成します。
- カーネルのアップグレード
- アプリケーションのアップグレードまたは変更
- ディスクデータの復元
復元する前に、ディスクのスナップショットを作成する必要があります。 スナップショットが完成したら、他の操作を実行できます。
-
OSS、オフライン、またはオフサイトバックアップ
重要なデータは、実際の状況に基づいて、OSS 、オフライン、またはオフサイトバックアップによってバックアップできます。
-