Назад | Перейти на главную страницу

Повысьте надежность за счет разбиения дисков разного размера?

Я понимаю, что ZFS предпочла бы, чтобы все диски имели одинаковый размер. Однако в случае, если у меня есть два диска разного размера (1 ТБ и 1,5 ТБ), я хотел бы иметь определенную избыточность, но не зеркалирование. Итак, я разделил два диска на 5 разделов с размером каждого раздела примерно 500 ГБ и создал пул raidz ... zfs с радостью согласился. Действительно ли это повышает надежность? Мысль в том, что если диск не выходит из строя полностью и выходит из строя только его часть, я все равно могу получить доступ к данным?

То, что вы описываете, немного безвкусно.

ZFS нужны полные диски одинакового размера и емкости. Это важно по ряду причин, но также имеет смысл.

Все, что вы будете делать в описанной вами ситуации, - это усложнять среду и увеличение ваш риск.

Скажем так:

  • Если у вас есть 1 ТБ данных на первом диске, вы можете реплицировать его на второй диск, и вы можете позволить себе потерять любой из них.

  • Если у вас есть 1,5 ТБ данных на втором диске, вы можете реплицировать только первый 1 ТБ данных на первый диск. В этом случае, если второй диск выходит из строя, вы ПОТЕРЯЕТЕ данные.

ZFS очень способна, но, как правило, в соответствии с двумя пунктами выше, смешанные настройки дисков являются глупыми и бесполезными. Если вы заботитесь о надежности и избыточности, представьте, что второй диск тоже всего 1 ТБ.

Мысль в том, что если диск не выходит из строя полностью и выходит из строя только его часть, я все равно могу получить доступ к данным?

Теоретически эта мысль верна. Если вы столкнетесь с ошибкой на одном устройстве вашего RAIDZ1 vdev, ZFS может и сообщит вам и исправит ошибку, при условии, что другие устройства не содержат ошибок.

На самом деле может отличаться несколько вещей:

  • Ошибки могут охватывать разделы, и поэтому будут затронуты два или более устройства, что может привести к неисправимым ошибкам или даже к потере всего пула (в зависимости от местоположения и количества ошибок). Вы можете использовать RAIDZ2 или Z3, чтобы несколько смягчить это, но проблема всегда существует.
  • При перенастройке раздела диск должен читать (2 раза) и записывать (1 раз) на один и тот же диск одновременно и в случайном порядке. Если вы не используете Solaris 11.3 с последовательным переносом обновлений, это будет очень-очень медленным. Пока вы не завершите процесс переноса данных, вы уязвимы для ошибок в других разделах. Если ваше время восстановления увеличивается, ваши шансы встретить дополнительный URE возрастают. Это также создает дополнительную нагрузку на диск, увеличивая вероятность полного отказа диска.
  • Представьте, что ваш 3-й раздел (последний на диске 1,5 ТБ) показывает достаточно ошибок, чтобы ухудшить пул и потребовать замены. Если вы не можете добавить другой диск, вы не сможете произвести замену без выключения / экспорта, да и то это сложнее, чем обычно.

Основываясь на этих моментах, я бы посоветовал не делать этого, если надежность - ваша главная цель. Предполагая фиксированную ситуацию с оборудованием, я бы сделал одно из следующего:

  1. Используйте зеркала и потеряйте 500 ГБ, но получите простую настройку с возможностью расширения в будущем.
  2. Используйте два отдельных пула и copies = 2 если вам нужна некоторая устойчивость к меньшим ошибкам (сбой всего диска убьет только 2/5 или 3/5 ваших данных по сравнению с вашей настройкой)
  3. Используйте файловые системы, отличные от ZFS, если хотите съесть свой торт и тоже