GNU/Linux >> Znalost Linux >  >> Linux

Jak 're-balancovat' data v zfs? (Ujistěte se, že jsou data rozložena mezi všechna pruhovaná zrcadla)

Pouze nově zapsaná (připojená) data jsou rozdělena mezi všechny aktuálně aktivní vdev, v ZFS neexistuje žádná explicitní operace opětovného vyvážení.

Dvě možná řešení:

  1. Počkejte, až budou všechna stará data znovu zapsána (kvůli CoW to může trvat velmi dlouho, v nejhorším případě dvojnásobek času, který by zabralo úplné zapsání disku).
  2. Odstraňte všechna data a zapište je znovu (zfs send/recv je užitečné při získávání všech dat z fondu a zpět, aniž byste cokoli ztratili). To nemusí být provedeno najednou a lze to provést na stejném fondu.

Abych byl přesnější, zvolil bych druhé řešení a v době, kdy je zatížení systému nízké (například v noci), přenesl každý souborový systém zvlášť:

  • Pořiďte snímek (zfs snapshot -r ) slušně velkého souborového systému (a rekurzivně nižších souborových systémů)
  • Použijte zfs send | zfs recv s vhodnými možnostmi pro odeslání snímku do nově vytvořeného dočasného souborového systému (může být ve stejném fondu, pokud to prostor dovolí); tento souborový systém by měl být na stejném místě v hierarchii jako ten starý
  • Po dokončení kopírování (může to chvíli trvat, protože disky musí číst a zapisovat), zfs destroy starý snímek a starý souborový systém
  • zfs rename dočasný systém na starý název
  • Zkontrolujte a změňte přípojné body pomocí zfs mount , přeuspořádání předchozí situace pro váš nahrazený souborový systém
  • Opakujte, dokud nebudou přesunuty všechny systémy souborů

možné 3. řešení (jak zmínil SirMaster v tomto příspěvku na fóru FreeNAS):

  • přidat nové disky do zpool
  • zkopírujte mnoho souborů do jiného nového adresáře /mnt/pool/temp/
  • smazat původní soubory:rm -rf original/
  • přejmenujte dir zpět:mv temp/ original/

Funguje to, protože ZFS proporcionálně umístí zápisy na kterýkoli vdev, který má nejvíce volného místa, v tomto případě na zcela nové disky, které byly prázdné. (od verze 0.7 bude zfs upřednostňovat rychlejší disky pro zápis, ale předpokládejme, že vaše 2 nové disky mají stejný nebo vyšší výkon než původní disky)

Je pravděpodobně pomalejší než zfs send | zfs recv , ale jednodušší, protože nemusíte vytvářet/ničit snímky.

Můžete spustit zpool list -v před a po, abyste viděli každé využití vdev.

Také jsem našel skript php, který provádí proceduru kopírování/mazání/přejmenování soubor po souboru. To bylo spojeno v odpovědi na podobný (ale zvol) dotaz o pár let starší. (tento skript jsem osobně netestoval)


Linux
  1. Jak najít souborový systém CD/DVD, aby se automaticky připojilo:[Linux]

  2. Jak přidat nový řádek na konec souboru?

  3. Jak si být jisti, že adresář nebo soubor je skutečně smazán?

  1. Linux – jak často je systém souborů Proc aktualizován v systému Linux?

  2. Jak zajistit, aby byl panel aktivit Gnome Shell neustále malý?

  3. Jak najdu všechny odlišné přípony souborů v hierarchii složek?

  1. Jak udělat soubor řídký?

  2. Jak přesměrovat výstup system() do souboru?

  3. Jak rm funguje? Co dělá rm?