Проверка функций сброса данных на диски

Настоятельно рекомендуем убедиться, что все устройства хранения, которые вы планируете включить в кластер, могут сбрасывать данные из кэша на диск при незапланированном отключении питания. Таким образом вы определите устройства, которые могут потерять данные при сбое питания.

Кибер Инфраструктура поставляется с инструментом vstorage-hwflush-check, который проверяет, как устройство хранения сбрасывает данные на диск в аварийной ситуации. Инструмент реализован в виде клиентской/серверной утилиты.

  • Клиент непрерывно записывает блоки данных на устройство хранения. После записи блока данных клиент увеличивает значение специального счетчика и отправляет его на сервер для сохранения.
  • Сервер отслеживает значения счетчика, получаемые от клиента, и всегда знает следующее значение. Если на сервер приходит меньшее значение счетчика, чем уже существующее (например, когда из-за сбоя питания устройство хранения не сбросило кэшированные данные на диск), то сервер сообщает об ошибке.

Чтобы убедиться, что устройство хранения успешно сбрасывает данные на диск при сбое питания, выполните следующую процедуру.

  1. На одном сервере запустите сервер:
  2. # vstorage-hwflush-check -l
  3. На другом сервере, где расположено тестируемое устройство хранения, запустите клиент, например:

    # vstorage-hwflush-check -s vstorage1.example.com -d /vstorage/stor1-ssd/test -t 50

    где:

    • vstorage1.example.com — имя узла сервера:
    • /vstorage/stor1-ssd/test — каталог для тестирования сброса данных. Во время выполнения клиент создает в этом каталоге файл, в который записывает блоки данных.
    • 50 — количество потоков для записи клиентом данных на диск. У каждого потока есть собственный файл и счетчик. Можно увеличить количество потоков (до 200), чтобы протестировать систему в более сложных условиях. Также можно указать другие параметры при запуске клиента. Дополнительные сведения о доступных параметрах см. на справочной странице vstorage-hwflush-check.
  4. Подождите как минимум 10–15 секунд, отключите питание на сервере клиента (нажмите кнопку питания или отсоедините шнур), а затем снова включите.

  5. Перезапустите клиент.
# vstorage-hwflush-check -s vstorage1.example.com -d /vstorlage/stor1-ssd/test -t 50

После запуска клиент прочитает все ранее записанные данные, определит версию данных на диске и перезапустит тестирование с последнего действительного значения счетчика. Затем он отправит это значение на сервер, а сервер сравнит его с последним, полученным ранее. Будут выведены данные вида:

id<N>:<counter_on_disk> -> <counter_on_server>

что означает один из следующих вариантов.

  • Если значение счетчика на диске меньше значения на сервере, то устройству хранения не удалось сбросить данные на диск. Это устройство лучше не использовать в производственной среде, особенно для CS или журналов, поскольку вы рискуете потерять данные.
  • Если значение счетчика на диске больше значения на сервере, то устройство хранения сбросило данные на диск, но клиенту не удалось сообщить об этом серверу. Возможно, что скорость сети недостаточна либо устройство хранения работает слишком быстро для заданного количества потоков и следует увеличить количество. Это устройство хранения можно использовать в производственной среде.
  • Если значения счетчиков равны, то устройство хранения сбросило данные на диск и клиент сообщил об этом серверу. Это устройство хранения можно использовать в производственной среде.

На всякий случай повторите процедуру несколько раз. Проверив первое устройство хранения, выполните проверку всех устройств, которые планируется использовать в кластере. Необходимо протестировать все устройства: твердотельные накопители, используемые для журналов CS, диски, используемые для журналов MDS, и серверы фрагментов данных.