ext4でフォーマットされたディスクをext4でLVMに変換する最も速い方法は?


12

現在cp -aR、99TBの1TB ext4フォーマットのディスクから新しいLVM-with-ext4-on-itディスクにデータをコピーしようとしています。それは永遠にかかっています。

ディスクを所定の場所に「変換」しようとする方法はありますか?EC2を使用しているので、バックアップには数分かかります。

またはcp、ext4ファイルシステムをLVMディスクに直接コピーするよりも速い方法はありますか?

回答:


22

私が書いたブロックを(旧姓lvmify)インプレースこの変換を行いいます。ファイルシステムを少し縮小し、ファイルシステムの先頭をパーティションの末尾に移動し、代わりにLVMスーパーブロック(適切なPV / LV / VGで事前構成済み)をコピーすることで機能します。


これは本当に面白いですね!500GBをもう1つのパーティション(すでにlvm)にバックアップして、試してみようと考えています!
アクエリアスパワー

1
@ガブリエル、これはライブFSで動作しますか?つまり、FSをアンマウントする必要がありますか?それはインプレースで実行されますか、ar / wマウントされたルートFSでも動作しますか?
ガブリエル

1
@AmrMostafa:「きれい」な固体?私は私のファイルシステムに関するこの事を持って、私は彼らがする必要が :-) ...固体
TJクラウダー

3
Ubuntu Trusty +ユーザーは、必要なPython 3.3をインストールするのが難しいことに気付くでしょう
。3.4

1
5耳前に更新されたという事実にもかかわらず、それは鋼鉄の働きです。NVMe SSD、GPTパーティションスキームで確認済み。注:Python 3.6を使用することをお勧めします。
tosh

2

ライブでディスクを変換する方法についてはわかりませんが、データをコピーするにはrsyncの方がより安全で安全な方法になると思います。転送が停止した場合でも、データを再開してそのまま保持することができます。

誰かがローカルドライブにLVMとして外部ドライブを追加することで、同様のプロセスが完了することがわかりました。それほど多くの情報はありませんが、始めるには十分だと思います:

「だから今日、LVMのすごいものを発見しました。Debianをインストールして、「LVM-ディスク全体を使用」を選択しました。代わりに、このより高速なドライブ上のシステム。

LVMアプローチ:/ dev / sdcをボリュームグループに追加し、「pvmove / dev / sda」を実行します。これにより、すべてのデータがsdaから他のドライブに移動されます(sdcのみが利用可能)。再起動する必要も、アンマウントする必要もありません。これを書いている間、データは移動されています。

後で、「vgreduce megatron / dev / sda」を実行して、ボリュームグループから出来上がったドライブを削除します。データを移動しました。(megatronは、ボリュームグループとコンピューターの名前です)。これは多くの人にとっては古いニュースかもしれませんが、これは本当にクールだと思っただけです:)」

確かにこれはローカルで行われましたが、追加の研究により、おそらくこれを達成できると思います。

ソース


2

そのようなLVM変換を「オンザフライ」で実行する方法はありません。

LVMは実際にはファイルシステムの下に存在し、複数の物理デバイスに拡張したり、ストライプ化またはミラー化したりします。論理ボリュームを作成する最後のステップは、ファイルシステムをその上に置くことです。RHEL6のを次に示します。

そのデバイスでデータをバックアップまたはアーカイブしてから、既存のファイルシステムを破棄し、論理ボリュームを作成して、ファイルシステムを一番上に再配置する必要があります。これがLinux OSのルートファイルシステムである場合は、再インストールを検討してください。速いかもしれません。

より高速なコピーのために、私は好きですが、私はddそれを頻繁に使用しません。間違えるのddは危険です。試せることの1つはtar czv <source fs> | (cd <destination fs>; tar x)、圧縮されたtarファイルをその場で転送することです。

幸運を!


1
tar操作で圧縮を使用しても意味がありません。データが圧縮されるのは、パイプ処理中のメモリ内のみです。ディスクに書き込まれる前に、すぐに再び圧縮解除されます。ただ今では、その操作は実行中に無駄に圧縮と圧縮解除の両方を行うため、CPU負荷が複数倍になります。また、ファイルシステム全体を含むこのような操作では、少なくとも tar cSf - | tar xvpf -スパースファイルとアクセス許可を処理する必要があります。おそらく--selinux(宛先ボリュームがその後ソースを置き換える場合)。
FeRD

これは、ソースデバイスと宛先デバイスが同じホスト上にある場合、またはCPUサイクルに余裕がない場合に適しています。これらは、ケースバイケースで考慮する点です。「S」および「p」スイッチと「--selinux」引数が好きです。
dafydd

うーん、もし誰かがネットワークリンク上でオンザフライのtar操作をパイプすることでファイルシステムのクローンを作成する場合、(a)彼らは私よりも勇敢な人ですが、(b)-pホストがユーザー名を共有しない限り、 / UID(マンページ-pは、rootとして実行されたときのGNU tarのデフォルトであることを思い出させてくれます)、--selinuxさらに危険に満ちています- 正しい(最終)にマウントされた後、全体に対してrestorecon -Rv(または-Rp)を行う方が良いでしょう)場所。
FeRD

ddは、パーティションをコピーしているため、この操作に適したツールです。ddは新しいパーティションに正確なコピーを作成し、fstabを変更して古いパーティションではなく新しいパーティションからロードします。古いドライブからすべてのパーティションを移動し終えたら、ファイルシステムを破棄し、ドライブをLVM物理ディスクグループに追加し、スペースを使用してパーティションを自由に拡張できます。
Xalorous
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.