私の全体的な目標は、Amazon Web Services(AWS)で何かをすることですが、具体的な質問はAWSとは関係ありません。
背景
私の目標は使用することです包装機セキュリティを強化するために、さまざまなファイルシステムに複数のパスを搭載したAmazonマシンイメージ(AMI)を作成します。たとえば、/tmp
このオプションはファイルシステムにインストールするために使用する必要がありますnoexec
。
AMIを作成するために自動化されたプロセスを作成したいのは、インスタンス自体から再インストールコマンドを実行できないことを意味するので、代わりにPackerを使用しました。Amazon chroot Builder。これは、EC2インスタンスを実行し、そのEC2インスタンスでPackerを実行することを意味します。これにより、PackerはソースAMIで使用されるEBSスナップショットからインポートされたEBSボリュームをマウントします。これで、マウントされたEBSボリュームでいくつかのタスクを実行する必要があります。
私の質問
最初のステップは、私がマウントしたブロックデバイスのフルバックアップを作成することでした/mnt/ebs
。
このセクションの素晴らしいデモに基づいています。https://youtu.be/8h_Y-L1Q8xI?t=13m47s、スピーカーでは、まずデバイスを取り外してから使用することをお勧めしますtar
。
彼はこの一連の作業を繰り返します。後でデモで。私の具体的な質問は次のとおりです。デバイスが最初にインストールされていない場合、デバイスの内容のtarバックアップをどのように作成しますか?また、一貫した状態を維持し、バックアップ中に書き込みが行われないようにするために、まずマウントを解除することが目的ですか、それとも別のものですか?
umount -l
ところで、fuser
忙しいプロセスを使用または確認したにもかかわらず、そのオプションがないとデバイスをマウント解除できないようです。lsof
しかし、その詳細は他の質問のために残しておきます。
私はCentOSに似ていますが、systemdを使用しないAmazon Linuxを使用しています。
答え1
いいえ。 tarを使用してアンマウントされたファイルシステムをバックアップすることはできません。
Tarがバックアップを待っています。文書ただし、期待どおりにファイルシステムをアンマウントした後は、これらのファイルをtarできません。
プレゼンターは次のように言います。
...最初にすべてを削除します。Packer がインストールしたばかりです。...
彼はPackerが何をインストールしているのか言っていませんでしたが、スクリプトのスクリーンショットを詳しく見てください。これには、/ procや/ devなどのさまざまなマウントポイントが含まれていません。これは意味する何実際にインストールされています。バインドマウントされた偽のファイルシステムがある偽のルートであるとします。
tarベースのバックアップを作成する理想的な方法は、ファイルシステムを読み取り専用でマウントすることです。目的は、バックアップ処理中にファイルシステムの整合性を維持することです。バックアップ処理中は変更したくありません。
問題のEBSボリュームのスナップショットを撮って他の場所に読み取り専用でマウントし、そこからtarアーカイブを作成できるようです。