X

News, tips, partners, and perspectives for the Oracle Solaris operating system

Новый интерфейс командной строки для Solaris Cluster 3.2

Guest Author

В выпуске 3.2 Solaris Cluster был представлен совершенно новый интерфейс командной строки для управления кластером. В новый набор команд входит множество более простых в использовании функций, предоставляющих более широкие возможности, чем наборы команд предыдущих выпусков продукта.

Конечно, знакомый набор команд из предыдущих выпусков сохранился в версии 3.2 и полностью поддерживается для пользователей, не готовых к переходу. Все команды по-прежнему находятся в папке /usr/cluster/bin, поэтому пользователям не требуется изменять параметры PATH для поиска команд каждого набора. Имена команд старого набора начинаются с префикса "sc", а имена всех команд нового интерфейса командной строки начинаются с префикса "cl". Наборы команд полностью совместимы друг с другом, поэтому пользователи могут использовать команды обоих наборов в одном сценарии на языке sh или командной строке.

Первые отзывы пользователей нового набора команд неожиданно были исключительно положительными. Но также встречались и вопросы: "Зачем необходим новый интерфейс командной строки для Solaris Cluster? Чем был плох старый?" Недавно компания Sun провела крупномасштабный опрос системных администраторов Solaris Cluster. Он показал, что наиболее распространенные проблемы кластера чаще всего решаются администраторами с помощью набора команд. Компания Sun пришла к выводу, что наилучшим решением выявленных проблем будет создание нового набора команд. Данные этого опроса и отзывы клиенты были использованы, чтобы приступить к разработке нового интерфейса командной строки. Проект претерпел несколько этапов доработки, поскольку мы представляли свои идеи клиентам. Наконец, перед тем, как окончательный проект был готов к внедрению, было проведено глубокое изучение удобства использования.

Новый набор команд является "объектно-ориентированным". Это значит, что для каждого типа объекта кластера, управление которым может быть необходимо, существует отдельная команда. Например, пользователю, управляющему только группами ресурсов, необходимо использовать только новую команду "clresourcegroup". Команда "clresourcegroup" может использоваться для создания или удаления групп, установки свойств групп, выполнения переключений групп ресурсов, печати настройки и отчетов о состоянии и т.д. Все новые команды поддерживают полное управление всеми объектами соответствующего типа.

Все новые командные интерфейсы имеют одинаковый базовый формат:

cl<тип_объекта> [<подкоманда>] [<параметры>] [<объекты>]

Поэтому, например, для создания новой группы ресурсов "rg1" можно использовать любую из следующих двух команд:

clresourcegroup create rg1
clresourcegroup create --property Description="My rg" rg1

Для большинства операций используются подкоманды, хотя некоторые параметры, например --help и --version, могут использовать без подкоманд.

Большинство новых команд также имеют встроенные "псевдонимы" или "короткие имена". Пожеланием наших клиентов было то, чтобы имена команд были описательными и понятными. Но, кроме того, имена команд должны быть короткими и простыми в вводе с клавиатуры. Группа Solaris Cluster решила, что наилучшим решением будет объединение этих пожеланий, поэтому у большинства команд два имени, короткое и описательное. Например, "clrg" – то же самое, что и "clresourcegroup":

clresourcegroup create rg1
clrg create rg1

В приведенных примерах можно заметить, что новые команды принимают длинные имена параметров (например, --property, --help, --version, ...). Длинные имена параметров полезны, особенно в сценариях на языке sh, поскольку они превращают код в некое подобие собственной документации. Но они также могут и мешать при выдаче команд непосредственно из командной строки. Все новые команды поддерживают однобуквенные параметры и параметры с длинными именами. При указании параметров пользователи могут использовать длинные имена с двойным дефисом (--) или буквы коротких параметров с одним дефисом (-). В качестве примера далее приведены две команды, выполняющие одну одну и ту же операцию:

clrg create --property Description="My rg" rg1
clrg create -p Description="My rg" rg1

Теперь вы, наверное, думаете, что все довольно просто и похоже на остальные использовавшиеся ранее команды. Это именно то, к чему мы стремились. Новый интерфейс командной строки Solaris Cluster разработан так, чтобы представляться знакомым интерфейсом. Формат команд похож на GNU, но в действительности соответствует немного более строгим соглашениям "парадигмы интерфейса командной строки" (Command Line Interface Paradigm – CLIP) Sun.

В рамках данной статье невозможно описать все полезные возможности нового набора команд. Однако приведем пару простых примеров, чтобы продемонстрировать некоторые другие, еще не рассмотренные возможности.

В первом примере выполняется удаление и последующее повторное создание всех ресурсов и групп в кластере:

# cluster export >clusterconfig.xml
# clrg delete --force +
# clrg create --input clusterconfig.xml +
# clrs create --input clusterconfig.xml +
# clrg online +

Первая команда в этом примере – "cluster export". Большинство новых команд поддерживают подкоманду "export" для экспорта копии данных настройки выбранного кластера в формате XML. Команда "cluster" в некоторой степени сходна с командной "umbrella" и, помимо всего прочего, может использоваться для создания отчетов о состоянии и настройке для всего кластера с помощью подкоманд "status", "show" и "export".

Далее, "clrg delete --force +" используется для удаления всех ресурсов и групп ресурсов из кластера. Параметр force указывает на удаление всех групп ресурсов, даже если в них все еще содержатся ресурсы. Символ "+" может использоваться в качестве операнда для большинства команд как своего рода "групповой символ" для обозначения всех объектов управляемого командой типа.

Следующие две команды, "clrg create" и "clrs create", используются для повторного создания всех ресурсов и групп ресурсов, описанных в файле "clusterconfig.xml", который был создан на первом этапе. Другой подход состоит в исключении этого этапа "clrg" и использовании параметра "--automatic" на этапе "clrs" для автоматического создания всех групп, необходимых новым ресурсам.

Наконец, все группы ресурсов в кластере переводятся в оперативный режим с помощью "clrg online +".

В следующем примере показан способ обновления свойства ресурса "массив строк":

# clrs list-props --verbose myresource
Property Name Description
-------------  -----------
myuserlist This is a list of user names
# clrs set -p myuserlist+=user9,user10 myresource

"list-props" – довольно полезная подкоманда. Она используется для создания списка имен свойств, а при использовании вместе с параметром --verbose - их описаний. При использовании "clrs" по умолчанию просто создается список свойств расширения; однако доступны и параметры для создания списка стандартных свойств. В данном примере мы использовали "clrs list-props" для создания списка описаний всех свойств расширения для ресурса с именем "myresource".

Наконец, "clrs set" используется для обновления свойства расширения "myuserlist" ресурса "myresource". Обратите внимание на то, что больше не требуется проводить различие между свойствами "расширения" и "стандартными" свойствами при их обновлении в командной строке (если только тип ресурса не использует свойство "расширения", имя которого совпадает с именем "стандартного" свойства). Другая полезная возможность заключается в том, что теперь свойства "массива строк" могут быть обновлены без необходимости повтор����ого указания неизмененной части массива. Параметр --property (-p) команды "clrs" поддерживает следующий синтаксис для обновления свойства ресурса "массива строк":

--property <property name>=<property value list>
--property <property name>+=<property value list>
--property <property name>-=<property value list>

Интерактивные справочные материалы для нового интерфейса командной строки Solaris Cluster содержатся в разделе "1CL" Справочного руководства по Sun Cluster для операционной системы Solaris.

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


Джон Каммингс
Старший инженер
Solaris Cluster Engineering

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.