8 Replies Latest reply: Dec 9, 2013 11:03 PM by Artur Alikulov RSS

iSCSI LUN - snapshots

SERGDMIT2005
Currently Being Moderated

В ряде материалов есть рекомендация - при создании LUN который отдается по iSCSI отключить snapshots. ( http://rajeev.name/quick-and-dirty-guide-to-iscsi-implementation/ )  Почему так ?  Можно ли все-таки использовать на таких LUNах snapshot для дальнейшего backup'а?

  • Re: iSCSI LUN - snapshots
    vladimirzhigulin
    Currently Being Moderated

    Это в данном конкретном случае человеку не нужны snapshot'ы.

     

    Я использую snapshot'ы LUN'ов очень активно, доступ к ним как раз по iSCSI протоколу, проблем нет =)

    • Re: iSCSI LUN - snapshots
      vladimirzhigulin
      Currently Being Moderated

      Немного расширю свой же ответ

       

      Ниже упоминается продукт SnapDrive, который "application aware" и умеет делать "консистентные" snapshot'ы. Небольшая проблемка - поддерживается ограниченное количество приложений (почему так - это уже другой вопорос).

      В моему случае был написан shell-скрипт, в котором консистентность достигается таким образом:

       

      1. Размонтировать LUN на клиенете: umount /local_path_to_LUN_on_client

      2. Сделать snapshot на СХД

      3. Смонтировать LUN на клиенте: mount /local_path_to_LUN_on_client

       

      Пункт 1. самый верный способ получить консистентность, но с побочными эффектами - рестарт приложения, которое использует LUN и, как следствие, "холодные" кэши ..

  • Re: iSCSI LUN - snapshots
    ivano
    Currently Being Moderated

    Дефолтные снапшоты на томе (по таймеру) не гарантируют 'консистентности' - то есть если файлер делает снапшот без оглядки на клиент, то запросто можете получить битую файловую систему в изображении этого луня в снапшоте и "do you want to format this disk" сообщение при попытке подключиния к нему.

    По хорошему надо использовать SnapDrive - оно суспендит + заставляет OS скинуть дисковый кэш (использует VSS на windows) и в таком "хорошем" состоянии кидает API в файлер чтобы тот снапшот сделал. В общем случае дефолнные снапшоты в ситуации с лунями - просто потеря места на томе. Отсюда и рекомендация по отключению.

  • Re: iSCSI LUN - snapshots
    DENISOV.NETWELL
    Currently Being Moderated

    Ivano правильно ответил, но если не куплен SnapDrive можно сделать скрипт который сначала скажет ОС сбросить кэш дисковых операций, а потом сделает снапшот на СХД.

  • Re: iSCSI LUN - snapshots
    ABOUTNETAPP.RU
    Currently Being Moderated

    Не "снэпшоты", а "snapshot reservations", это разные вещи. Отключить снэпшоты невозможно, снэпшоты это неотъемлемое встроенное свойство файловой системы WAFL, его невозможно отключить, как невозможно отключить создание симлинков на Ext2, допустим, или создание вложенных папок на FAT :-)

     

    Почему так ?

    Так что короткий ответ - потому что вы не разобрались, и поняли написанное неверно.

     

    Отвечу сразу на следующий вопрос: "зачем отключать snapshot reservation?" (и заодно "что это такое?").

     

    Snapshot reservation это специально зарезервированное пространство на томе системы хранения ("том" (volume) это одна из базовых структур иерархии дисковых объектов Data ONTAP) уровнем выше "тома" находятся QTree, "файловые шары" (shares), такие как сетевые папки CIFS/SMB и экспорты (exports) NFS, а также LUNы.

    Это зарезервированное пространство решает одну очень специфическую проблему. Дело в том, что по технологии, используемой в Data ONTAP, при создании снэпшот не занимает места на диске (вообще, или, если буквоедствовать, занимает 4KB на копию мастер-ноды на момент создания снэпшота).

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

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

     

    Чтобы не пугать таким странным поведением консервативно мыслящих админов, было придумано специальное резервирование места под блоки снэпшотов. Теперь, если мы назначаем тому резерв на снэпшоты, свободное место на томе, доступное для данных не меняется, пока в резерве есть место. С точки зрения данных на томе граница резерва непреодолима, мы видим как свободное пространство только то, что расположено от этой границы "вниз".

     

    Однако для снэпшотов эта граница преодолима, и если число блоков превысит резерв, то снэпшот преодолеет границу резервации и начнет расти "вниз", и тогда свободное пространство будет уменьшаться от записей в данные тома. Но обычно резервирование, равное 15-20%, вполне умещает в себе измененные блоки, и том WAFL ведет себя как привычный, традиционный том любой другой файловой системы. На нем есть, допустим, 10GB места  и 6GB данных, и если новые данные не дописывать, то на нем остается 4GB свободного места вне зависимости от того, есть у вас на нем снэпшоты или нет, изменяются в пределах этих 6GB данные, или нет.

    Так что snapshot reservation это такая "маскировка", специальной черной полоской, рамером в 20% тома, нам делают невидимым то, что происходит на "верхних" (условно) блоках тома.

     

    Картинки, помогающие понять о чем идет речь, можно посмотреть там: http://blog.aboutnetapp.ru/archives/341

     

    Когда в 2005 году на NetApp появилась возможность блочного доступа к данным тома, то есть возможность создать поверх тома LUN, то snapshot reservation, как оказалось, потерял свою ценность для этого применения. LUN обычно создается фиксированного размера, и для него проблема изменения объема свободного места на томе при перезаписи не является значимой (все равно админ видит только содержимое внутри LUN). Для того же, чтобы обеспечить достаточное место для измененных блоков сперва испольовалась Fraction reserve, а впоследствии возможность volume autogrowth.

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

     

    Но отключение резервирования под блоки снэпшотов НЕ означает отключение снэпшотов. Они по прежнему могут создаваться, только просто будут сразу занимать видимое пространство на томе, вот и вся разница.

    • Re: iSCSI LUN - snapshots
      ivano
      Currently Being Moderated

      > vol options <volname> nosnap on

      > vol options <volname> nosnapdir on

      - это отключает автоматическое создание (бесполезных или лучше сказать негарантированных) снапшотов по таймеру на томе и отключает показ ".snapshot" для клиентов.

       

      Данное "отключение" не означает что снапшоты создавать на томе совсем нельзя - можно вручную (предварительно отключив лунь), можно из скрипта, можно из снапдрайва.

       

      Выставление snapshot reserve в ноль - это уже как у Вас душа лежит. Некоторые ставят в ноль, некоторые нет.

      Блоки зафиксированные в снапшоте никуда ни в какой "резерв" не передвигаются а остаются там где они были. Просто при выставлении резерва НЕ в ноль, система "мухлюет" со значениями свободного/занятого пространства - пространство то для тома одно и то же, но вот место "занятых" блоков "приписывается" в первую очередь резерву. И да, когда резерв исчерпан, занятое место начинае приписываться "оставшемуся тому".

       

      Кстати ... когда вы на томе выставляете 'guarantee=volume' не думаете же вы что том "откусил" от аггрегата своё место и на нём сидит? Как бы не так ... том занимает ровно столько место сколько ему надо (обычно меньше заявленного), гарантирование делается с помощью выставления "правильных" значений свободного/занятого места на аггрегате.

      Если не верим, под 'priv set diag' смотрим на вывод "stats show volume", на значение

      volume:vol_name:wv_fsinfo_blks_total

      которая показывает полный размер тома (включая fsinfo) в блоках (по 4КБ) на текущий момент.

    • Re: iSCSI LUN - snapshots
      ivano
      Currently Being Moderated

      Рекомендуется отключать снапшты по таймеру на томе при наличии луня.

      Выставление резерва в ноль - это уже на усмотрение админа.

More Like This

  • Retrieving data ...