Після довгих роздумів та експериментів я знайшов рішення, хоча і з досить великою компромісією.
По-перше, варіанти, які мені довелося виключити:
Наявність другого виїзного сервера ZFS з дзеркальним пулом не було можливим через вартість. Якби це був варіант, це, безумовно, був би найкращим підходом, використовуючи передачу / отримання ZFS для доставки знімків у віддалений пул.
Маючи другий дзеркальний басейн ZFS на місці, з якого я міг зняти диски, щоб забрати додому. Це більш здійсненно, ніж перший варіант, але мені потрібно, щоб другий пул завжди мав два диски на місці (або використовувати дві копії даних на одному диску на сайті). В даний час у мене є чотири диски, і більше немає місця для п’ятої на сервері. Це був би справедливий підхід, але все ще не ідеальний.
За допомогою приєднання та від'єднання ZFS поверніть резервний диск у дзеркальний пул та з нього. Це добре працює, але має виконувати повний resilver щоразу, коли диск додається. Це триває неприпустимо довго, і тому я не міг на це покладатися.
Моє рішення аналогічно використанню attach
і detach
, тим НЕ менш він використовує online
і offline
. Це має перевагу у виконанні дельта-резілліверінгу порівняно з повним перенапруженням, але недолік у тому, що пул завжди повідомляє про DEGRADED
стан (пул завжди має два диски; обертові офсетні диски позначаються, offline
коли вони знаходяться у віддаленому сховищі та resilver, а потім приходять в Інтернет коли вони на місці).
Отже, короткий підсумок та огляд моїх налаштувань:
У мене є один сервер ZFS і чотири однакові диски. ZFS налаштований на використання дзеркального пулу. Два з чотирьох дисків є постійними членами цього пулу. Інші два диски обертаються; один завжди знаходиться в сховищі за межами сайту, а інший є частиною пулу, щоб виконувати функції резервного копіювання.
Коли настає час обертати резервні копії:
Я чекаю zfs scrub
завершення, щоб досить впевнитись, що резервний диск не містить помилок
Я zfs offline
диск, який вийму віддалений. Після його відключення я hdparm -Y /dev/id
повинен це відкрутити . Через хвилину я частково виймаю дискову санку (достатньо, щоб забезпечити її втрачену потужність), а потім даю їй ще хвилину, перш ніж повністю витягнути привід, щоб гарантувати, що він перестав крутитися. Диск йде в статичну сумку, а потім захисний чохол і виходить за межі місця.
Я приношу в інший офсетний диск. Він встановлюється в лоток гарячої заміни і обертається. Я використовую zfs online
для відновлення диска в пул і розпочинаю часткове перенапруження, щоб зробити його одночасним.
Ця система гарантує, що в будь-який момент у мене є два ONLINE
дзеркальні диски та один OFFLINE
віддалений диск (який був вичищений). Четвертий диск або перезавантажений, або в Інтернеті, що має перевагу, що у випадку виходу з ладу дискового накопичувача, можливо, пул все ще буде відповідати двом онлайн-дискам.
Це працювало добре протягом останніх кількох тижнів, але я все-таки вважаю це хакерським підходом. Я буду відповідати, якщо у мене виникнуть якісь основні проблеми.
Оновлення: Після роботи з цим протягом декількох місяців я виявив, що в реальному використанні resilvering займає однаковий час як для від'єднання / приєднання, так і в режимі офлайн / онлайн. У моєму тестуванні я не думаю, що я працював скрабом - моя думка полягає в тому, що якщо диск не працює в режимі офлайн для скрабу, тоді він вимагає повного ресивера.