計画:
私は長年にわたりプライベートサーバー上でRaid5アレイを開発してきました。メディア、バックアップなどを含む8TBドライブ6個を蓄積しました。
すべてのドライブをアーカイブするためにSynology 8ベイデバイスを購入しましたが、現在地域間でデータを移動しようとしていますが、ここで問題が始まります。
追加の8TBデバイスを購入しましたが、Raid5のいずれかのデバイスでエラーが発生した後、両方のデバイスを使用してSynologyでRaid1ボリュームを作成しました。 Synologyでは、別のドライブ(または5台)を追加したときにRaid1をRaid5にアップグレードできます。 8テラバイトのデータをこの新しいドライブに移動し、既存のストレージスペースをすべて使用して、元の40テラバイトのRaidボリュームから合計16テラバイトのデータを削除しました。
これで、計画は元のボリュームを24 TBに減らし、Raid5を3 + 2 Raid6に再構成し、追加の2つのドライブを取り外してSynologyに追加し、残りのスペースのほとんどを移動することです。繰り返しますが、すべてのデータを含める必要があります。
これまでのステップ:
/dev/md127 は /srv/media にマウントされ、LVM に vg_data/lv_media が含まれます。まず、ボリュームをマウント解除します。
umount /srv/media
続行する前にfsが健康であることを確認してください。
e2fsck -ff /dev/vg_data/lv_media
LVMの論理ボリュームを使用可能量(16TB)に減らします。
lvreduce -L -16t -r -v vg_data/lv_media
LVMがセグメントを作成した場所を確認してください。 (lv_mediaは長年にわたって割り当てられたため、もはや連続的ではありません。)
pvs -v --segments /dev/md127
一部のセグメントは、間に空き領域がある物理ボリュームの末尾にあります。テールをドライブの起動に近い間隔で手動で移動します。これには、セグメントを分割したり新しいセグメントを作成したりする作業が含まれますが、私の場合は、十分なスペースを確保するためにセグメントを移動しました。
pvmove --alloc anywhere /dev/md127:4982784-5046783 /dev/md127:284672-348671
LVM PVのサイズを変更してRAIDのスペースを解放します。
pvresize -v --setphysicalvolumesize 24000g /dev/md127
RAIDの縮小(再構成前)
mdadm --grow /dev/md127 --size=25769803776
これが私が詰まっているところです。 mdadm raidは、LVMが現在より少ないスペースを使用していることを認識/確認することを拒否し、割り当てられたスペースを超えて配列を縮小できないと不平を言います。
mdadm:/dev/md127のデバイスサイズを設定できません:デバイスに余分なスペースがありません。
どんなアイデアでも安全に配列サイズを小さくしますか?
ベストアンサー1
@frostschutz あなたは本当に美しいです!どのように見逃したのかはわかりませんが、先週にマニュアルページを読みすぎてみました!
mdadm --grow /dev/md127 --array-size=25769803776
これは、サイズ変更後もデータがそのまま残っていることを確認する一時的で安全で元に戻す方法です。そうでない場合は、データに影響を与えずに同じ方法でサイズを復元できます。
e2fsck -ff /dev/mapper/vg_data-lv_media
このチェックはエラーなしで合格したので、今すぐ進めます。 Raid5からRaid6への変更により、移行に必要とされない追加の複雑さが導入されたように見え、アレイの外観を変更する最も安全な方法は、プロセスに追加のスペアディスクを置くことです。
mdadm --grow /dev/md127 -l5 -n4 --backup-file /srv/cache/raid.backup
バックアップファイルはSSDにあります。少しでも役立つことを願っています。これまではとてもよかったです。この話がハッピーエンドで終わったら、私はこの答えを受け入れるでしょう...