воскресенье, 26 июля 2009 г.

DS3000 GUI vs CLI

Не секрет что системы IBM DS3000, DS4000, DS5000 производятся компанией LSI по заказу IBM, при этом прошивки систем очень похожи друг на друга. Они имеют схожую нумерацию версий, одинаковый синтаксис командной строки, управляются одним и тем же продуктом - IBM DS Storage Manager.

Системы DS4000 и DS5000 практически идентичны, с точки зрения функционала доступного из GUI DS Storage Manager. Они отличаются только эскизами самих систем (все-таки, внешне они разные) и количественными характеристиками. Другое дело отличия в GUI DS3000 и старших систем, так получается, что часть функционала имеющегося в системах DS3000 недоступна из GUI, при этом его можно задействовать через командную строку. С моей точки зрения там есть действительно нужные команды, которые могут серьезно облегчить жизнь инженеру обслуживающему данные системы. К примеру, команда расширения LUN, альтернатива ей из GUI нету.

Я думаю, что все функции не включены в GUI системы DS3000 по маркетинговым соображениям. Видимо с точки зрения IBM, если вам требуется что-то большее чем просто дисковая емкость, следует покупать системы старшего уровня

Я не буду перечислять все команды, которые доступны в системе, их можно найти в хелпе к DS Storage Manager, я же отмечу только то, что однозначно полезно знать и чем я сам неоднократно пользовался.

Самый простой способ инициировать выполнение скрипта системой – открыть DS staroge manager, щелкунть по требуемой системе правой клавишей и выбрать из контекстного меню “Execute Script”. В открывшемся окне пишем код и жмем по необходимости Verify или Execute.

Теперь непосредственно сами команды:

1. Добавление дисков к уже существующему массиву можно выполнить из GUI но добавлять можно только по одному диску (по два для RAID10), через консоль же можно добавлять по два диска и для RAID 5/6. Учитывая то, что каждый шаг расширения может достигать нескольких часов, консоль в случае расширения RAID 5/6 уменьшит количество итераций в 2 раза.

Синтаксис:
set array [tst] addDrives=(0,9 0,10);
здесь “tst” имя array, диски адресуются по принципу «номер полки запятая номер диска», между дисками ставится пробел.

2. Если у Вас на Array находится несколько LUN и Вы удаляете не последний на его месте образуется «пусто место». Это пустое место будет доступно для того чтобы сделать на его месте один или несколько LUN, но если вы хотите использовать это место для создания большого луна, тоесть использовать его вместе с другим пустым местом – ничего не получится. Поскольку можно создать LUN только на пустом месте идущем «одним куском». Помогает вынести все свободное место в конец массива команда дефрагментации. В GUI её нет.

Синтаксис:
start array [tst] defragment;
здесь “tst” имя array

3. После создания LUN зачастую оказывается, что места было мало и необходимо предоставить больший объем. В GUI DS3000 не умеют расширять LUN, то есть предполагается, что мы создаем новый LUN, копируем на него данные и потом меняем старый на новый LUN. Понятно что такая процедура очень сложна и требует на одной системе места и под старый LUN и под новый, либо стороннего дискового пространства. Ну и в момент переноса данные будут недоступны по понятным причинам. В консоли же есть штатная команда для расширения, процесс займет какое-то время (в зависимости от размера LUN), но работа с данными не будет прервана и после окончания ОС просто обнаружит пустое место на диске (так будет в ОС Windows 2003/2008).

Синтаксис:
set logicalDrive ["tstlun"] addCapacity= 1 GB;
Здесь “testlun” имя LUN, вместо GB могут быть MB. Не забудьте пробел после цифры.

4. Можно изменить размер сегмента LUN. Целесообразность – тема отдельная, но в GUI этой функции нету.

Синтаксис:
set logicalDrive ["tstlun"] segmentSize = 256;
Здесь “testlun” имя LUN, цифра размер сегмента в kb.

5. В системе можно изменить настройки кэширования для отдельного LUN. Чтобы понять что отвечает за что – нужно читать Redbook.

Синтаксис:
set logicalDrive ["tstlun"] cacheFlushModifier=cacheFlushModifierValue cacheWithoutBatteryEnabled=(TRUE | FALSE) mirrorCacheEnabled=(TRUE | FALSE) readCacheEnabled=(TRUE | FALSE) writeCacheEnabled=(TRUE | FALSE) cacheReadPrefetch=(TRUE | FALSE);
Здесь “testlun” имя LUN, варианты представлены в скобках.

6. Можно изменить размер блока КЭШа. С моей точки зрения надо ставить 16 kb.

Синтаксис:
set storageSubsystem cacheBlockSize=16;

7. Можно изменить настройки работы КЭШа.

Синтаксис:
set storageSubsystem cacheFlushStart=80 cacheFlushStop=80;
Для понимание что это – Redbook. Best Practice – 80 оба значения.

8. Можно снять с системы результаты производительности. С моей точки зрения результаты могут быть чрезвычайно полезны.

Синтаксис:
set session performanceMonitorInterval=10 performanceMonitorIterations=10;
save storageSubsystem performanceStats file="C:\perf.txt";
Здесь в первой строке мы задаем время снятия изменений (одной итерации) и количество этих итераций. Во второй строке мы стартуем процесс снятия результатов и указываем, куда сохранять результаты.

9. Можно посмотреть статус текущей операции и процент её выполнение. В GUI система показывает, что она просто “Operation in prgoress” через CLI можно еще и получить точную информацию о проценте выполнения.

Синтаксис:
show logicalDrive[tstlun] actionProgress;
Здесь “testlun” имя LUN. Также можно использовать для создания скриптов где требуется дождаться что система свободна.

Информация по теме:
http://www.redbooks.ibm.com/abstracts/sg247065.html - RedBook IBM System Storage DS3000: Introduction and Implementation Guide

ftp://ftp.software.ibm.com/systems/support/bladecenter/gc52127502.pdf - IBM System Storage DS3000, DS4000, and DS5000 Command Line Interface and Script Commands Programming Guide

15 комментариев:

  1. ИБМ периодически меняет пути к документам, поэтому инструкции отлично ищутся через поиск: Поиск

    ОтветитьУдалить
  2. diz:Вчера (03.03.2010) официально вышла свежая прошивка к DS3000 (7.35.53.00)
    Это `bugfix` release.

    Из любопытного:
    - (CR162603) ECC errors on one controller causes outage on second controller
    - (CR161295) Controller reboots due to drive insertion

    ОтветитьУдалить
  3. Добрый день.
    Подскажите пожалуйста как правильно заменить батарейку на DS3400.

    В логах появилось сообщение :
    Component reporting problem: Battery
    Status: Battery replacement required
    Location: Controller enclosure 85, Controller in Slot A

    Я так понимаю, что необходимо:
    Отключить кэширование -> перевести первый контроллер в Offline -> заменить батарейку -> перевести его в Online -> тоже самое повторить с вторым контроллером -> затем включить кэширование.

    Мне не понятно как в данной дисковой стойке отключается/включается кэширование.
    Может кто подскажет?

    ОтветитьУдалить
    Ответы
    1. Нужно с сайта IBM скачать документ под названием "System Storage DS3400 Storage Subsystem. Installation, User’s, and Maintenance Guide". Там есть глава 5 - "Replacing components", в ней и находится соответствующая Вашему запросу часть "Replacing a battery".
      Если говорить образно, то Вы правильно описали процедуру, но в документе все написано подробно и детально. В реальной жизни лучше им и руководствоваться.
      Все отключения/включения делаются через DS Storage Manager.

      Удалить
    2. Спасибо за оперативный ответ, Андрей.
      В данной статье описывается
      Use the following procedure if the DS3000 Storage Manager software instructs you
      to replace the battery because the current battery has failed.....Because
      write-caching is disabled when the battery fails, replace the failed batter......

      В моем случае батарея еще работает (осталось 75 дней) и кэш включен. Но я уже купил батарейку и хочу ее поменять. По этому мне необходимо отключить этот самый кэш.

      Удалить
    3. Если кэш работает, можно конечно его предварительно выключить через Storage Manager или CLI.

      Удалить
    4. Вот в этом и вопрос. Как это сделать???

      Удалить
    5. Ну так выше же все написано - через CLI командой set writeCacheEnabled=FALSE.
      Но, по большому счету, это лишнее - кэш на запись должен выключиться, когда будет дана команда на извлечение контроллера.

      Удалить
    6. оК. понятно.
      кэш я отключая не потому, что вытаскиваю контроллер, а для того, чтоб второй рабочий контроллер не использовал кэш т.к. если в момент замены контроллера А контроллер В выйдет из строя - то пропадет несколько Гиг информации из его кэша и как следствие нарушение целосности данных. Это важно бля баз данных. По этому я на период замены батареек хочу полностью отключить кэш.
      Поправьте меня, если я ошибаюсь.

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

      Удалить
    8. System Storage DS3400 Storage Subsystem. Installation, User’s, and Maintenance Guide так описывает процедуру замены батарейки:
      1.Печатаем storage subsystem profile.
      2.Смотрим “Best practices guidelines” как вкл/выкл саму СХД
      3.Определяем какой контроллер неоходимо вынимать.
      4.Вынимаем сам контроллер и делаем манипуляции связанные с заменой батарейки.

      По этой инструкции контроллер даже не переводится в Оффлайн! Просто тупо берется и вынимается. Вот тут и возникает вопрос кто даст комманду на извлечение контроллера по которой ДОЛЖЕН выключится кэш????
      Storage Manager и CLI вообще не применяются (кроме как сохранить storage subsystem profile).

      Тут меня и начинают одолевать сомнения.

      Удалить
    9. Позвонил в ИБМ и поговорил с инженерами. Оказалось, что в случае вынимания первого контроллера второй контроллер автоматически отключает сбрасывает содержимое кэш на диск и отключает кэш.

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

      Спасибо Вам, Андрей, за Ваши ответы.
      удачи.

      Удалить
    10. Отключить контроллер можно через CLI (в старший системах это можно делать через GUI - что в 3000 я не помню). Кэш отключается автоматически, когда теряется один контроллер (выключается программно или вытаскивается) - про это я писал выше. И выше я писал, что "Но, по большому счету, это лишнее". Т.е. ровно так, как сказали Вам в IBM.

      Удалить
  4. Анонимный30 мая 2013 г., 18:01

    А как правильно выполнить замену исправных дисков на диски большей/меньшей (но более быстрых) емкости? массивы на системе уже удалены.

    ОтветитьУдалить
  5. Ну так вытащить cтарые диски и вставить новые наверно? :)

    ОтветитьУдалить