Створення віртуальних серверів за допомогою VMControl REST API

  1. огляд
  2. Дозвіл віддаленого виконання команд на HMC
  3. Лістинг 1. Використання віддаленої командного рядка HCM
  4. Створення пулу зберігання
  5. Лістинг 2. Використання VMControl REST API для отримання параметрів налаштування
  6. Лістинг 3. VMControl REST API для визначення наявних хостів
  7. Малюнок 1. Фізичні томи, доступні на зазначеному хост
  8. Лістинг 4. Віддалене створення пулу зберігання
  9. Створення логічного тому
  10. Лістинг 5. Віддалене створення віртуального диска
  11. Лістинг 6. Завдання на складання переліку ресурсів
  12. Лістинг 7. Зміст завдання на складання переліку ресурсів
  13. Лістинг 8. Приклад властивостей події додавання керованого елемента
  14. Малюнок 2. Віртуальні диски, доступні в хост-системі
  15. Створення нового віртуального сервера
  16. Лістинг 10. Приклад JSON-запиту на створення віртуального сервера
  17. Малюнок 3. Створення віртуального сервера за допомогою VMControl REST API
  18. Лістинг 11. Стан активізації завдання в REST API
  19. Малюнок 4. Детальна інформація про активацію завдання
  20. Створення віртуального сервера програмним способом
  21. Лістинг 12. Приклад виклику VMControl REST API на мові Java
  22. Перевірка конфігурації віртуального сервера
  23. Малюнок 5. Віртуальні диски, призначені віртуального сервера
  24. Малюнок 6. Мережі, призначені віртуального сервера
  25. Виклик команд HMC з клієнта REST
  26. Лістинг 13. Приклад виклику системних команд на мові Java
  27. Ресурси для скачування

Наши партнеры ArtmMisto

Налаштування віртуальних дисків і мереж

огляд

IBM Systems Director пропонує набір готових інтерфейсів, доступних з будь-якої мови, що має бібліотеку клієнта HTTP, наприклад, Java, Perl, C # і т.п. Ці інтерфейси представляють собою Web-сервіси, які спираються на клієнт-серверну архітектуру REST, причому кожен Web-сервіс представляється в IBM Systems Director у вигляді ресурсу. Кожен ресурс має прив'язаний до нього URI (уніфікований ідентифікатор ресурсу). URI ресурсу, метод HTTP, можливі параметри запиту та тіло HTTP-запиту, що відправляються сервера IBM Systems Director, використовуються для визначення сервісу, до якого здійснюється доступ (він же REST API), і операції, яку цей сервіс повинен виконати.

VMControl - це менеджер з розширеними можливостями, що підтримує Web-сервіси REST в IBM Systems Director. На момент написання цієї статті поточною версією VMControl була 2.3.1, яка, на жаль, кілька обмежена в тому, що стосується створення дисків в процесі створення віртуальних серверів. Версія 2.3.1 не підтримує програмного створення віртуальних дисків або логічних томів, але це незручність можна обійти: можна створювати віртуальні диски, використовуючи віддалене виконання команд в консолі управління обладнанням (IBM Hardware Management Console - HMC) і додаючи віртуальні диски і мережі через REST Web -сервіси VMControl.

Дозвіл віддаленого виконання команд на HMC

Інтерфейс командного рядка надає простий метод виконання простих і складних операцій і дозволяє використовувати команди HMC в скриптах для автоматизації спільних операцій управління системою. Щоб дозволити і налаштувати віддалене виконання команд на HCM, використовуйте інформацію, наведену в wiki-ресурсі по командному рядку HMC .

Налаштувавши командний рядок для віддаленого виконання команд, ви зможете виконувати команди HMC з клієнта SSH. Лістинг 1 показує, як подавати команди віртуального сервера введення / виведення (VIOS). Пізніше ми використовуємо команди VIOS для створення пулу зберігання і логічних томів.

Лістинг 1. Використання віддаленої командного рядка HCM
$ Ssh hscroot @ <хост_hmc> viosvrcmd -m <Сістема_POWER> -p <імя_vios> -c ' "<команда_vios>" "

тут:
<Хост_hmc> ім'я або IP-адреса хоста HMC
<Сістема_POWER> ім'я системи POWER, наприклад, Server-9117-MMA-SN10ED68E
<Імя_vios> ім'я VIOS, що працює у вашій системі POWER
<Команда_vios> команда, яку потрібно виконати в VIOS

Якщо команда VIOS містить аргументи, важливо укласти її в одинарні лапки '; в іншому випадку ви отримаєте приблизно таке повідомлення про помилку:
"Вказано неприпустимий параметр. Параметри -virtual неприпустимі. Перевірте синтаксис і повторіть команду".

Створення пулу зберігання

Пул логічних томів являє собою набір з одного або декількох фізичних томів. Для створення пулу зберігання повинні бути виконані наступні вимоги:

  • HMC повинна мати версію 7 і редакцію 3.4.2 або старше.
  • VIOS повинен мати версію 2.1.1.0 або старше.
  • Між HMC і VIOS має існувати з'єднання для моніторингу ресурсів та управління.

Для створення пулу зберігання, заснованого на групі томів, в першу чергу потрібно знати, які фізичні томи вашої системи вільні. Для отримання списку вільних фізичних томів можна використовувати VMControl REST API, як показано в лістингу 2.

Лістинг 2. Використання VMControl REST API для отримання параметрів налаштування
VMControl / hosts / {hostOID} / virtualServers / customization

Цей API показує всі доступні параметри налаштування при створенні нового віртуального сервера на даному хості. Для визначення ідентифікатора об'єкта (OID) вашого хоста можна використовувати API, показаний в лістингу 3.

Лістинг 3. VMControl REST API для визначення наявних хостів
VMControl / hosts /

Передавши запит GET в API, показаний в лістингу 2, ви отримаєте перелік доступних фізичних томів у властивості diskphysicalvolumes, як показано на малюнку 1.

Малюнок 1. Фізичні томи, доступні на зазначеному хост

Для кожного фізичного тому потрібно знати його ідентифікатор (id) і розмір. Розмір зазначений усередині об'єкта property. Вам потрібно вирішити, який фізичний том буде використовуватися, а потім віддалено виконати команду на HMC з клієнтського застосування REST для створення пулу зберігання. У лістингу 4 показана віддалено виконувана команда VIOS.

Лістинг 4. Віддалене створення пулу зберігання
$ Ssh hscroot @ <хост_hmc> viosvrcmd -m <хост-система> -p <імя_vios> -c ' "mksp -f <імя_пула_храненія> <фізіческій_діск>"'

Зверніть увагу, що з ідентифікатора фізичного тому потрібно взяти тільки ім'я, опустивши текст ": vios".

Створення логічного тому

Логічний тому буде представлений в VMControl у вигляді віртуального диска, і коли пул зберігання буде створений, ви зможете створити будь-яке потрібне число дисків. Для віддаленого створення віртуального диска можна використовувати команду, показану в лістингу 5.

Лістинг 5. Віддалене створення віртуального диска
$ Ssh hscroot @ <хост_hmc> viosvrcmd -m <хост-система> -p <імя_vios> -c ' "mklv -lv <ім'я_диска> <імя_пула_храненія> <розмір>"'

Видимі VMControl віртуальні ресурси

Щоб додати пул зберігання і віртуальні диски в IBM Systems Director як ресурси, потрібно передати завдання на складання переліку ресурсів, вказавши в якості цільової системи хост-систему POWER. Для передачі POST-запиту на створення переліку ресурсів використовується API, як показано в лістингу 9:

Лістинг 6. Завдання на складання переліку ресурсів
resources / {ObjectType} / {OID} / inventoryprofiles / {ProfileID} / inventory / jobs

де:

{ObjectType} = Сервер
{OID} = Ідентифікатор об'єкта сервера
{ProfileID} = Ідентифікатор профілю переліку ресурсів. Можна використовувати стандартний ідентифікатор всіх ресурсів: default.All

Зміст запиту, яке можна використовувати з API в лістингу 6, показано в лістингу 7:

Лістинг 7. Зміст завдання на складання переліку ресурсів
{ "DisplayName": "Завдання на складання переліку моїх ресурсів",}

Стан і хід виконання завдання на складання переліку ресурсів можна контролювати за допомогою наявного в IBM Systems Director провайдера Java Messaging Service (JMS), в ролі якого виступає Apache ActiveMQ . IBM Systems Director використовує цього провайдера для передачі подій і інших важливих повідомлень зацікавленим клієнтським застосуванням. Огляд JMS і приклади можна знайти в IBM Systems Management SDK . Для цього вам потрібно підписати свого клієнта на тему Director.jobs.activation і перевірити стан і хід виконання завдання.

Для моніторингу подій і перевірити наявність в IBM Systems Director нових ресурсів, таких як пули зберігання і віртуальні диски, можна створити нову підписку на тему JMS. Використовуйте тему Director.manageableelementservice.manageableelement. Властивості повідомлення, отриманого при додаванні в IBM Systems Director нового керованого елемента, показані в лістингу 8.

Лістинг 8. Приклад властивостей події додавання керованого елемента
properties = {EventType = CREATED_EVENT, OID = 91256, ObjectType = StorageVolume, Version = 1.0.0}

Значення властивості ObjectType означає тип знову доданого ресурсу. Якщо це пул зберігання, ObjectType приймає значення StoragePool. У разі віртуальних дисків, створених як логічні томи в розділі VIOS, ObjectType приймає значення StorageVolume.

Якщо завдання на складання переліку ресурсів завершено без помилок і керовані елементи додані, ви можете переконатися в тому, що нові ресурси доступні для VMControl в IBM Systems Director, використовуючи той же VMControl REST API, показаний в лістингу 2. На малюнку 2 показаний набір віртуальних дисків , що відображається всередині властивості disks.

Малюнок 2. Віртуальні диски, доступні в хост-системі

В об'єкті property кожного віртуального диска ви знайдете додаткову інформацію: розмір (МБ), пул зберігання і сервер зберігання. В даному випадку в ролі сервера зберігання виступає VIOS. Для прив'язки дисків до нового віртуального сервера використовується ідентифікатор віртуального диска id.

Створення нового віртуального сервера

Лістинг 9. Використання VMControl REST API для створення віртуального сервера
/ VMControl / hosts / {hostOID} / virtualServers

POST-запиту необхідні дані об'єкта JSON, в яких ви вказуєте параметри віртуального сервера, як пояснюється в статті IBM Systems Director VMControl SDK .

У лістингу 10 показаний приклад JSON-даних, що містять такі параметри:

  • Тип віртуального сервера IBM Power - AIXLINUX
  • Ім'я віртуального сервера vserver
  • Режим ЦП SHARED
  • Число ЦП 2
  • Обсяг пам'яті 2048
  • Одиниці виміру обсягу пам'яті MB
  • Диски vmdisk1: rootvg_vm: vios; vmdisk2: rootvg_vm: vios. Це означає, що і vmdisk1, і vmdisk2 будуть прив'язані до віртуального сервера.
  • Мережі, значення 1. Це означає, що до віртуального адаптера Ethernet буде прив'язана VLAN з ідентифікатором 1.
  • Мережі, значення 80. Це означає, що до віртуального адаптера Ethernet буде прив'язана VLAN з ідентифікатором 80.
Лістинг 10. Приклад JSON-запиту на створення віртуального сервера
{ "VirtualServer": { "properties": [{ "name": "gos", "value": "IBM Power - AIXLINUX"}, { "name": "name", "value": "vserver"}, { "name": "cpumode", "value": "SHARED"}, { "name": "cpushared", "value": 2}, { "name": "memsize", "value": 2048}, { "name": "memunitsize", "value": "MB"}, { "name": "disks", "value": "vmdisk1: rootvg_vm: vios; vmdisk2: rootvg_vm: vios"}, { "name" : "networks", "value": "1"}, { "name": "networks", "value": "80"}]}}

На малюнку 3 показана передача запиту в API в лістингу 9, виконувана за допомогою плагіна Poster для FireFox. Poster дозволяє безпосередньо взаємодіяти з REST API і переглядати тіло листа у відповідь і інформацію про стан. Ви можете передати запит на будь-яку операцію, підтримувану в REST API, не написавши жодного рядка коду; при цьому ви можете передати такий же запит, використовуючи мову програмування з бібліотекою клієнта HTTP, наприклад Java.

Малюнок 3. Створення віртуального сервера за допомогою VMControl REST API

Зверніть увагу, що в момент передачі запиту активується завдання, яке повідомить вам про стан та хід виконання операції Create Virtual Server (Створення віртуального сервера). Якщо все пройде добре, ви побачите новий віртуальний сервер в VMControl. Для перевірки стану завдання можна передати в API запит GET, як показано в лістингу 11.

Лістинг 11. Стан активізації завдання в REST API
jobs / {jobID} / activations / {activationID}

Замінивши значення, повернуті в даному прикладі у відповідь на запит create virtual server, ми отримаємо jobID = 36 і activationID = 12. Коли стан виконання завдання прийме значення Complete (завершено), а хід виконання досягне 100%, ви побачите повідомлення, показане на малюнку 4.

Малюнок 4. Детальна інформація про активацію завдання

На малюнку 4 показано повідомлення, яке виводиться при виконанні завдання на 50%: "Запит на створення віртуального сервера DNZVMP509I для хоста Server-9117-MMA-SN10ED68E завершено успішно. Новий віртуальний сервер може відобразитися в Systems Director не відразу. Відображення нового віртуального сервера може зайняти кілька хвилин ". Коли активація завдання завершиться, ви побачите приблизно таке повідомлення: "Стан завдання клієнта сервера {імя_хоста} змінено на" Завершено ".

Ще раз рекомендуємо використовувати JMS для отримання повідомлень, що генеруються при оновленні стану завдання або при створенні, видаленні або зміні нового керованого елемента. В даному випадку керованим елементом є новостворений віртуальний сервер.

Створення віртуального сервера програмним способом

Вихідний код декількох хороших прикладів виклику IBM Systems Director REST API наведено на сайті IBM Systems Management SDK . У лістингу 12 показаний приклад передачі POST-запиту на створення віртуального сервера на мові Java.

Лістинг 12. Приклад виклику VMControl REST API на мові Java
1) public String ceateVirtualServer () {2) String METHODNAME = "ceateVirtualServer"; 3) String requestPayload = "сюди вставляються дані JSON з лістингу 10"; 4) String uri = sdc.getConnectionContextURI () + "/ VMControl / hosts / 48098 / virtualServers"; 5) RESTUtilities.log (Level.INFO, logger, CLASSNAME, METHODNAME, "requestPayload:" + requestPayload); 6) RESTUtilities.log (Level.INFO, logger, CLASSNAME, METHODNAME, "Викликаний (POST) URI:" + uri); 7) try {8) HttpsURLConnection dataConnection = sdc.processRequest (uri, "POST", requestPayload); 9) int rc = dataConnection.getResponseCode (); 10) if (rc! = 201) {11) RESTUtilities.log (Level.SEVERE, logger, CLASSNAME, METHODNAME, "ПОМИЛКА: Повернуто несподіваний код: Очікувався 201, але отриманий" + rc); 12) return "-1"; 13)} 14) String response = RESTUtilities.getResponseString (dataConnection); 15)} catch (Exception e) {16) e.printStackTrace (); 17)} 18) return "0"; 19)}

Рядок 14 лістингу 12 дає вам URL, необхідний для перевірки стану і ходу виконання створеного завдання, точно так же, як ми отримували його на малюнку 3.

Перевірка конфігурації віртуального сервера

Коректність збереження налаштувань віртуального сервера в IBM Systems Director можна перевірити за допомогою такої процедури:

  1. Перейдіть в меню System Configuration> VMControl> Virtual Servers and Hosts (Конфігурація системи> VMControl> Віртуальні сервери і хости)
  2. Виберіть новий віртуальний сервер, виберіть у контекстному меню (права кнопка миші) System Configuration> Edit Virtual Server (Конфігурація системи> Редагування віртуального сервера), потім виберіть Virtual Disk (Віртуальний диск) і переконайтеся в тому, що обрані призначені віртуальні диски, як показано на малюнку 5.
  3. Виберіть Network (Мережа) і переконайтеся, що призначені мережі відображаються, як показано на малюнку 6.

На малюнку 5 показані призначені віртуального сервера віртуальні диски.

Малюнок 5. Віртуальні диски, призначені віртуального сервера

Як видно на малюнку 5, віртуальні диски, створені віддалено в розділі VIOS через HMC, коректно прив'язані до віртуального сервера. Крім того, тут відображаються і всі інші непризначені віртуальні диски.

Після створення віртуального сервера VMControl автоматично прив'язує до розділу VIOS віртуальний адаптер SCSI. Перезавантаження при цьому не потрібно.

На малюнку 6 показано мережі, призначені віртуального сервера. Ці мережі були заздалегідь створені в розділі VIOS, який управляє апаратними ресурсами віртуальних серверів.

Малюнок 6. Мережі, призначені віртуального сервера

На малюнку 6 показані дві мережі з унікальними ідентифікаторами. Ці ідентифікатори є внутрішні ідентифікатори віртуальних мереж (VLAN), які використовуються для взаємодії з віртуальними серверами.

Виклик команд HMC з клієнта REST

Цей документ являє собою короткий посібник зі створення віртуального сервера за допомогою VMControl REST API. Ви можете викликати свої скрипти для віддаленого виконання команд HMC з клієнтського застосування REST (див. Розділи Створення пулу зберігання і Створення логічного тому). Наприклад, якщо ви використовуєте код Java, а ваш клієнт працює в системі Linux / Unix, ви можете викликати скрипти HMC так, як показано в лістингу 13.

Лістинг 13. Приклад виклику системних команд на мові Java
1) String s = null; try {2) Process p = Runtime.getRuntime (). exec ( "ssh [email protected] viosvrcmd" + "-m Server-9117-MMA-SN10ED68E -p myvios" + "-c '\" mklv -lv vmdisk2 rootvg_vm 10G \ " '"); 3) BufferedReader stdInput = new BufferedReader (new InputStreamReader (p.getInputStream ())); 4) BufferedReader stdError = new BufferedReader (new InputStreamReader (p.getErrorStream ())); // читання вихідного значення команди 5) System.out.println ( "Стандартне вихідне значення команди: \ n"); 6) while ((s = stdInput.readLine ())! = Null) {7) System.out.println (s); 8)} // читання помилок виконаної команди 9) System.out.println ( "Стандартна помилка команди (якщо така сталася): \ n"); 10) while ((s = stdError.readLine ())! = Null) {11) System.out.println (s); 12)} 13) System.exit (0); 14)} 15) catch (IOException e) {16) System.out.println ( "сталася помилка - це все, що я знаю:"); 17) e.printStackTrace (); 18) System.exit (-1); 19)}

висновок

b) Наведені в цьому документі рекомендації можна використовувати для створення пулів зберігання і віртуальних дисків в процесі створення віртуального сервера за допомогою VMControl 2.3.1. Важливо відзначити, що віртуального сервера можна призначити тільки повний розмір диска, і цей же процес можна використовувати для призначення фізичних дисків. У цьому випадку вам достатньо витягти ідентифікатор фізичного диска з відповіді REST API, як показано в лістингу 2.

У грудні 2011 року були випущені нові версії IBM Systems Director 6.3 та VMControl 2.4, що дозволяють додавати існуючий диск і томи за допомогою REST API, проте вони не підтримують створення нового диска і прив'язку його до існуючого віртуального сервера. Ви можете створити віртуальний диск за межами VMControl, дотримуючись процедури, описаної в цьому посібнику, а потім відредагувати існуючий віртуальний сервер, додавши в нього нові диски за допомогою API: hosts / {hostOID} / virtualServers / {vsOID}.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Главное меню
Реклама

Архив новостей
ArtmMisto
Наши партнеры ArtmMisto. Игроки могут начать свое азартное приключение на сайте "Buddy.Bet", который только что открылся для всех ценителей азарта.

Реклама

© 2013 mexpola.h1a25414f