そこで、私は毎日、イメージから Windows ベースの NTFS ドライブを多数クローンしており、私や他のユーザーがこのプロセスを大幅に高速化できる可能性のあるプロジェクトを半分まで進めています。
現在、mdadm と 16 個の SATA ポートを備えた Ubuntu 17.10 をセットアップしています。アイデアとしては、各 SATA ポートにドライブを接続し、同時に各ポートにクローンを作成するというものです。
一度に 1 つのドライブで dd を使用すると、約 135 MB/秒 (最大約 180 MB/秒) の結果が得られますが、同時に他のドライブのクローン作成を開始すると、速度が大幅に低下します。
同じことが dcfldd でも起こりますが、複数の出力を指定できるという追加の利点がありますof=
。
さて... 当初は、一度にクローン化したいすべてのドライブを含む RAID1 アレイを利用するというアイデアがありました。しかし、RAID のアーキテクチャとクローン化後のドライブの使いやすさに矛盾があるようです。
これまで試したことは次のとおりです。mdadm を使用して複数のドライブのアレイを作成し、実行を続行します。sudo dd if=/home/clone/some_image.img of=/dev/md0 bs=4096
このプロセスは完全に正常に実行され、優れた速度結果が得られます (一度にすべてのドライブで約 110 Mb/s)。プロセスが終了した後、ドライブには書き込んだデータが含まれていないように見えます。次の手順では、ドライブのスーパーブロックをゼロにして、使用可能なドライブに戻すことを期待しますが、これも機能しないようです。
古いスーパーブロック バージョン (1.2 から 0.9) を使用して新しい配列を作成しようとしましたが、以前と同じ結果になります。
ドライブに保存されているデータに関係なく、ドライブには常に mdadm 経由でしかアクセスできないため、最初の結果は非常に有望であったにもかかわらず、このアイデアは完全に失敗します。
そこで、次の質問をさせていただきます。RAID1 アレイにイメージを書き込んでから、単一のディスクに戻す方法はありますか? RAID を使用したり、ドライブをマウントするためにサードパーティのツールを必要とせずに、RAID1 へのクローン作成の速度上の利点を享受できる他のテクノロジはありますか?
読んでいただき本当にありがとうございます。
答え1
いいえ、これは機能しません。Linux ソフトウェア RAID (または実際にはハードウェア RAID) を使用している場合は、RAID に必要な外部管理構造が存在するため、ディスクが使用できなくなります。
答え2
クローンを作成するとき一枚の画像複数のディスクにコピーする場合は、すべてのインスタンスを同時に開始する必要がありますdd
。この方法では、すべての読み取り (最初の読み取りを除く) はキャッシュから行われ、ソース ディスクがスラッシングされることはありません。
クローンを作成する場合異なる画像ソース ディスクはより高速で、アクセス待ち時間が短い必要があります。単純な RAID 1 または 0 ではおそらく不十分です。SSD または多数のディスクを備えた大規模な RAID であれば、おそらくこれを実現できます。