Виртуализация: начальная установка Xen сервера

THE HOLY BIBLE - King James Version - БИБЛИЯ в Синодальном переводе
"Нас Атакуют!" Изобличи козни лукавого, запрети диаволу

Виртуализация: начальная установка Xen сервера

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

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

В данной заметке я попытаюсь обобщить свой опыт использования средств виртуализации, обосновать выбор и продемонстрировать один из подходов к созданию простой и эффективной виртуальной платформы на базе гипервизора Xen.

Прежде чем мы продолжим, я хотел бы привести строки из Писания:



............. == Послание к Римлянам святого апостола Павла == .................
=== Глава 1, Стих 28 ===
28 И как они не заботились иметь Бога в разуме, то предал их Бог превратному
 уму -- делать непотребства,
29 так что они исполнены всякой неправды, блуда, лукавства, корыстолюбия,
 злобы, исполнены зависти, убийства, распрей, обмана, злонравия,
30 злоречивы, клеветники, богоненавистники, обидчики, самохвалы, горды,
 изобретательны на зло, непослушны родителям,
31 безрассудны, вероломны, нелюбовны, непримиримы, немилостивы.
32 Они знают праведный суд Божий, что делающие такие дела достойны
 смерти; однако не только их делают, но и делающих одобряют.

Лично для вас благая весть - Единородный Сын Божий Иисус Христос любит вас, Он взошёл на крест за ваши грехи, был распят и на третий день воскрес, сел одесную Бога и открыл нам дорогу в Царствие Небесное.

Но ведь как много страданий и бед мы встречаем на нашем жизненном пути - почему, ведь нам было обетовано Царствие Небесное? Ответ мы можем и должны дать сами - отворачиваясь от Бога и не имея Его Слова в разуме нашем, как и любви к ближнему в сердце своём, мы сами себя приговариваем к суровому осуждению по суду Божиему.

Посмотрите на историю наших народов - уже почти столетие мы с ослиным упорством делаем всё большие мерзости перед Богом, озлобляя и наглухо закрывая свои сердца. И вот теперь, когда наше вероломство и безрассудство достигли невообразимых масштабов, время бы уже каждому остановиться, открыть глаза, взглянуть вокруг себя и осознать сколько неправды и преступлений мы совершили! Как бы нам понять простую вещь - похоже, что Господь Бог наказывает нас всех за взаимную нелюбовь и бездушие, и страдания наши не закончатся до тех пор, пока мы не начнём следовать Его заповедям. Каждый из нас должен в молитве покаяния обратиться к Господу - только таким образом наши многострадальные народы возможно обретут мир и благоденствие, если помилует нас Бог. Вместо неуёмного стяжания суетных земных благ нам надлежит стоять в церкви на коленях и молить Бога о прощении грехов и преступлений наших!

Покайтесь, примите Иисуса как вашего Спасителя, ибо наступают последние времена и время близко - стоит Судья у ворот.

Пожалуйста, в своих каждодневных трудах, какими бы занятыми вы себе ни казались - находите время для Бога, Его заповедей и Библии.

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


Вернёмся к нашим техническим деталям.

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

На серверах Sun ILOM имеет:

  • "последовательный" доступ через RJ-45 разъём "SER MGT" и
  • возможность подключения через Ethernet кабель "NET MGT"- ssh или http по TCP/IP на "порту управления".
  • Оба варианта позволяют "войти" в командную строку ILOM и уже через него получить доступ к консоли самого сервера.

    Предположим, что нам в руки попал сервер x3-2 (или T4-2), но при этом мы не знаем ни паролей, ни сетевых адресов и просто не можем "проникнуть" внутрь. Нам необходимо полностью "переустановить" систему и заново ввести её в эксплуатацию.

    Но прежде всего - вставьте в привод DVD на сервере диск с ОС Линукс (или Соларис), которую вы хотите установить. Я использую OUL6.4. Сделайте это прямо сейчас - конечно, если ваш сервер поставляется с ДВД приводом. Также удостоверьтесь что к вашему Sun серверу подключены как минимум два Ethernet кабеля - к ILOM'у ("NET MGT") и к сетевой карте самого компьютера ("NET 0").

    Работаем с ILOM

    Начнём мы именно с сервисного процессора - подключим соответствующий "последовательный" кабель к RJ-45 разъёму "SER MGT" на задней стенке и запустим программу minicom или cu. В случае использования кабеля с USB интерфейсом команда выглядит так: "minicom --noinit --baudrate 9600 --device /dev/ttyUSB0". Проверьте чтобы оба hardware и software flow control были отключены. Внизу экрана в статусной строке minicom'a должно быть сообщение "8N1". Нажмите "Enter" несколько раз - на экране должно появиться приглашение типа "SUNSP-0000000000 login: ".

    Как я сказал, никаких паролей мы не знаем. Но каждый Sun ILOM v3 имеет встроенный доступ по умолчанию, который невозможно отключить. Обычно такой вид доступа требует подтвердить физический доступ к серверу путём нажатия кнопки-индикатора местоположения на задней или передней панели машины. В сервере SPARC T4 физический доступ подтверждается нажатием разогнутой скрепкой маленькой скрытой кнопочки слева от USB разъёмов, на задней стенке сервера.

    Итак, в качестве имени пользователя в приглашении ILOM введём "default" и нажмём "Enter". ILOM потребует подтвердить присутствие возле сервера: "Press and release the physical presence button." Нажмём кнопку-индикатор, она должна замигать (или вставим разогнутую скрепку в отверстие слева от USB разъёма и нажмём скрытую кнопочку там). После этого нажмём "Enter" в программе minicom. Появится запрос пароля - введите "defaultpassword". В результате мы должны оказаться "внутри" сервисного процессора, в его командной строке:

    Password:
    
    Oracle(R) Integrated Lights Out Manager
    
    Version 3.1.2.10.d r83372
    
    ->
    

    Теперь я могу изменить пароль пользователя "root" в ILOM - заметьте, мы всё ещё "внутри" маленького Линукса работающего на сервисном ARM процессоре на материнской плате. Сам сервер всё ещё остаётся "потушенным". (Да-да, это означает что даже в SPARC серверах есть и активно используется Линукс!)

    Также я установлю необходимые сетевые параметры - сразу же проверьте подключение сетевого Ethernet кабеля к порту "NET MGT" на задней панели. Второй конец этого кабеля должен быть подключен к IP свичу уже в вашей сети и вы должны иметь наготове IP адрес и сетевую маску для последующего доступа к ILOM через ssh.

    -> cd /SP/users/root
    /SP/users/root
    
    -> pwd
    Current default target: /SP/users/root
    
    -> set password=12345678
    Changing password for user /SP/users/root...
    Enter new password again: ********
    New password was successfully set for user /SP/users/root
    
    -> exit
    

    Пользователь "default" не имеет прав на изменение параметров ILOM, поэтому, используя всё тот же последовательный порт и minicom, зайдём в ILOM как "root" (пароль вы только что задали) и изменим IP настройки:

    -> cd /SP/network
    /SP/network
    
    -> set pendingipaddress = 10.0.0.140
    -> set pendingipdiscovery=static
    -> set pendingipnetmask = 255.255.255.0
    -> set commitpending=true
    
    ...
    
    -> ls /SP/network
    
    /SP/network
    Targets:
    interconnect
    ipv6
    test
    
    Properties:
    commitpending = (Cannot show property)
    dhcp_clientid = none
    dhcp_server_ip = none
    ipaddress = 10.0.0.140
    ipdiscovery = static
    ipgateway = 0.0.0.0
    ipnetmask = 255.255.255.0
    macaddress = 00:10:E1:11:22:33
    managementport = MGMT
    outofbandmacaddress = 00:10:E1:11:22:33
    pendingipaddress = 10.0.0.140
    pendingipdiscovery = static
    pendingipgateway = 0.0.0.0
    pendingipnetmask = 255.255.255.0
    pendingmanagementport = MGMT
    sidebandmacaddress = 00:10:E1:11:22:34
    state = enabled
    
    Commands:
    cd
    set
    show
    
    ->
    

    Теперь войдём в ILOM как пользователь "root", но уже через сетевой Ethernet интерфейс. Последовательный кабель уже можно отключить, программу minicom завершить. Уже с вашей рабочей станции подключимся к ILOM через "NET MGT" порт с IP адресом, только что установленным вами. Пароль вам уже известен.

    ............. == Послание к Римлянам святого апостола Павла == .................
    === Глава 2, Стих 1 ===
    1 Итак,  неизвинителен  ты,  всякий  человек,  судящий  _другого,_  ибо  тем  же
    судом, каким судишь другого,  осуждаешь  себя,  потому  что,  судя  _другого,_
    делаешь то же.
    2 А  мы  знаем,  что  поистине  есть  суд  Божий  на  делающих  такие    _дела._
    3 Неужели думаешь  ты,  человек,  что  избежишь  суда  Божия,  осуждая  делающих
    такие _дела_ и (сам) делая то же?
    4 Или пренебрегаешь богатство  благости,  кротости  и  долготерпения  Божия,  не
    разумея, что благость Божия ведет тебя к покаянию?
    5 Но, по упорству твоему и нераскаянному сердцу,  ты  сам  себе  собираешь  гнев
    на день гнева и откровения праведного суда от Бога,
    6 Который воздаст каждому по делам его:
    7 тем, которые постоянством в добром деле ищут славы,  чести  и  бессмертия,  --
    жизнь вечную;
    8 а тем, которые упорствуют и не покоряются истине, но  предаются  неправде,  --
    ярость и гнев.
    
    MyPC $> ssh root@10.0.0.140
    
    Password:
    
    Oracle(R) Integrated Lights Out Manager
    
    Version 3.1.2.10.d r83372
    
    ->
    

    С этого момента нам уже не придётся сидеть в серверной комнате - все остальные настройки и установку ОС можно делать удалённо, через ILOM.

    Установки BIOS и подготовка дискового массива

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

    Процесс загрузки и доступ к BIOS

    Настало время (пере)запустить сам сервер - при этом мы хотим попасть в меню BIOS при загрузке. Как пользователь ILOM "root":

    -- Эквивалент принудительного выключения машины нажатием и
    -- удерживанием кнопки питания.
    
    -> stop /SYS -f
    Are you sure you want to immediately stop /SYS (y/n)? y
    stop: Target already stopped
    
    -> show /SYS power_state
    
    /SYS
    Properties:
    power_state = Off
    
    -> start /SYS
    Are you sure you want to start /SYS (y/n)? y
    Starting /SYS
    
    -- Это надо делать быстро!
    
    -> start /SP/console
    Are you sure you want to start /SP/console (y/n)? y
    
    Serial console started.  To stop, type ESC (
    .... сообщения о загрузке машины, как будто на экране монитора.
    
    BIOS Date: ..... Ver: .....
    Press F2 to run Setup (CTRL+E on serial keyboard)
    Press F8 for BBS Popup (CTRL+P on serial keyboard)
    Press F12 for network boot (CTRL+N on serial keyboard)
    Selected Boot Mode = Legacy BIOS
    Press F9 to start Oracle System Assistant
    
    -- Если мы успели нажать F2 или CTRL+E, появится:
    
    [Setup Selected]
    ...
    
    

    Используя стрелки клавиатуры, внесите необходимые изменения в BIOS, сохраните их и выйдите из System Setup - машина снова начнёт перезагружаться.

    Подготовка RAID контроллера

    Теперь нам надо попасть в программу настройки RAID контроллера:

    LSI MegaRAID SAS-MFI BIOS
    Version 3.24.00 (Build October 6, 2011)
    HA -0 (Bus 80 Dev 0) LSI MegaRAID SAS 91-9i
    FW package: 12.12.0-0079
    Battery Status: Fully charged
    PCI SLOT ID LUN VENDOR    PRODUCT                   REVISION
    -------- -- --- ------    -------                   --------
    4               LSI       LSI MegaRAID SAS 9261-8i  2.120.203-144
    4        8  0   HITACHI   H106060SDSUN600G          A2B0
    4        9  0   HITACHI   H106060SDSUN600G          A2B0
    4        10 0   HITACHI   H106060SDSUN600G          A2B0
    4        11 0   HITACHI   H106060SDSUN600G          A2B0
    4        12 0   HITACHI   H106060SDSUN600G          A2B0
    4        13 0   HITACHI   H106060SDSUN600G          A2B0
    Press CTRL-P to continue  or CTRL-V to skip
    
    ....
    
    3 Virtual Drive(s) found on the host adapter.
    3 Virtual Drive(s) handled by BIOS
    Press Ctrl-H for WebBIOS or press Ctrl-Y for Preboot CLI
    
    -- Быстро нажимаем CTRL-Y, если успели - попадём в программу:
    
    MegaPCLI SAS RAID Management Tool.
    Use -h -a(n) for controller specific help, where n is the ...
    Use -v -a(n) for controller specific version, where n is ...
    Use q to exit from $ prompt
    Controller(s) Found
    HA-0 (Bus 50 DevFn 0)
    $
    
    

    Выйти из режима "консоли" можно в любой момент нажатием "ESC (". Если цвета нарушены, выйдите из ssh, в вашем терминале наберите "setterm -reset" и снова подключитесь к ILOM через ssh.

    При использовании удалённого доступа к серверу через "консоль" ILOM программа WebBIOS не работает и нам придётся изменять параметры RAID массива через командную строку MegaRAID.

    Вначале я удалю имеющуюся конфигурацию, вместе с данными:

    -- из оболочки MegaPCLI SAS RAID Management Tool:
    $CfgClr -aAll
    Adapter 0: Configuration is Cleared.
    Exit Code = 0x0
    $
    

    При создании логических дисков мне понадобится знать Enclosure Device ID, найдём его:

    $EncInfo -a0
    ...
    Number of enclosures on adapter 0 -- 1
    Enclosure 0:
    Device ID : 252        --- Вот он.
    Number of Slots : 8
    ...
    
    

    Получить информацию о физическом диске на этом контроллере можно так:

    $PDInfo -PhysDrv [252:7] -a0
    

    Создание массива дисков

    Теперь решите на каких дисках вы хотите создать RAID массив и какого типа. Выпишите параметры этих дисков и их "маршрут" типа [252:7]. Предположим что я создаю просто "полоску" ("stripe") из двух дисков:

    -- Создание массива:
    $CfgLDAdd -R0 [252:6,252:7] WB NORA Cached -strpsz8 -a0
    Adapter 0: Created VD 0
    Adapter 0: Configured the Adapter!!
    Exit Code = 0x0
    $
    
    -- Проверка состояния логического диска:
    $LDInfo -L0 -a0
    Adapter 0 -- Virtual Drive Information:
    Virtual Drive: 0 (Target Id: 0)
    Name                :
    RAID Level          : Primary-0,Secondary-0,RAID Level Qualifier
    Size : 556.929 GB
    State               : Optimal
    Strip Size          : 8 KB
    Number Of Drives    : 2
    Span Depth          : 1
    Default Cache Policy: WriteBack,ReadAheadNone,Cached,No Write CU
    Current Cache Policy: WriteBack,ReadAheadNone,Cached,No Write CU
    Access Policy       : Read/Write
    Disk Cache Policy   : Disk's Default
    Encryption Type     : None
    
    Exit Code = 0x0
    $
    

    Таким же образом я создам RAID5 на шести оставшихся дисках:

    $CfgLDAdd -R5 [252:0,252:1,252:2,252:3,252:4,252:5] \
    WB NORA Cached -strpsz64 -a0
    

    В обоих случаях я использую "write back" кэш контроллера для ускорения записи на диск - это значит что при полной потере контроллера я могу потерять данные. Также я не позволяю контроллеру читать соседние данные "заранее" и "разбиваю" файлы на физических дисках, входящих в состав логических, на фрагменты определённого размера, задавая "stripe size".

    Массивы сложной структуры с контролем чётности обычно требуют достаточно долгой инициализации, во время которой все диски обычно прописываются нулями. Проверим где инициализация ещё идёт:

    $LDBI -ShowProg -Lall -a0
    Background Initialization on VD #0 is not in Progress.
    Background Initialization on VD #1 (target id #1) Complete 10%
    

    Очевидно, что RAID0 уже готов к использованию. Вновь подчеркну, что мы всё ещё находимся "в BIOSe", но до загрузки с DVD диска для установки ОС уже недалеко.

    Если инициализация логического диска не началась автоматически, запустим её вручную:

    $LDInit -Start -L0 -a0
    Start Initialization on Virtual Drive 0 (target id: 0) Success.
    
    -- таким же образом для оставшихся дисков:
    $LDInit -Start -L1 -a0
    ...
    

    К этому моменту у нас уже имеются два логических диска и они оба будут "видимы" для программы установки ОС. Решим какой диск будет загрузочным и активируем его. При этом после включения компьютер будет выполнять программу BIOS, передавать управление на RAID контроллер (поскольку других дисков, неподключенных к РАИД, у нас в машине нет - иначе надо определить порядок загрузки и в BIOS, выдавая приоритет RAID контроллеру) а уже контроллер решит на каком диске искать загрузочный сектор. Вот как сделать диск загрузочным "в пределах" контроллера:

    $AdpBootDrive -Set -L0 -a0
    Boot Virtual Drive is set to #0 (target id #0) on Adapter 0
    

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

    SPARC: Процесс загрузки и OpenBoot

    Естественно, в SPARC сервере вместо BIOS мы будем использовать OpenBoot. Эта среда предоставляет собственный "командный интерфейс", в который не так просто попасть. Находясь в ILOM, установим такой параметр и перезагрузим сервер:

    -> pwd
    Current default target: /HOST/bootmode
    
    -> ls
    
    /HOST/bootmode
    Targets:
    
    Properties:
    config = factory-default
    expires = (none)
    script = (none)
    state = normal
    
    Commands:
    cd
    set
    show
    
    -> set script="setenv auto-boot? false"
    Set 'script' to 'setenv auto-boot? false'
    
    -> show script
    
    /HOST/bootmode
    Properties:
    script = setenv auto-boot? false
    
    -> reset /SYS
    Are you sure you want to reset /SYS (y/n)? y
    Performing reset on /SYS
    
    -> start /SP/console
    Are you sure you want to start /SP/console (y/n)? y
    
    Serial console started.  To stop, type #.  -- Обратите внимание, отличается!
    svc.startd: Killing user processes.
    Jun 24 01:41:38 The system is down.  Shutdown took 36 seconds.
    syncing file systems... done
    [CPU 0:0:0] NOTICE:  Checking Flash File System
    [CPU 0:0:0] NOTICE:  Initializing TOD: 2014/06/04 01:42:28
    [CPU 0:0:0] NOTICE:  Loaded ASR status DB data. Ver. 3.
    [CPU 0:0:0] NOTICE:  Initializing TPM with:
    ...
    [CPU 0:0:0] NOTICE:  Storing PRI to data flash ("factory-default")
    [CPU 0:0:0] NOTICE:  Storing Guest MD to data flash ("factory-default")
    [CPU 0:0:0] NOTICE:  Storing HV MD to data flash ("factory-default")
    [CPU 0:0:0] NOTICE:  Storing mini MD to data flash ("factory-default")
    [CPU 0:0:0] NOTICE:  Updating Config Information for Guest Manager
    [CPU 0:0:0] NOTICE:  Jumping to hypervisor
    Hypervisor version: @(#)Hypervisor 1.11.1.a 2012/09/23 19:46
    ...
    SPARC T4-2, No Keyboard
    ...
    auto-boot? =            false
    {0} ok
    
    {0} ok printenv auto-boot?
    auto-boot? =            false
    {0} ok setenv auto-boot? true
    auto-boot? =            true
    {0} ok printenv auto-boot?
    auto-boot? =            true
    {0} ok devalias
    ...
    rcdrom /pci@400/pci@2/pci@0/pci@f/pci@0/usb@0,2/hub@2/hub@3/storage@2/disk@0
    ...
    cdrom  /pci@400/pci@2/pci@0/pci@4/scsi@0/disk@p6
    ...
    {0} ok boot cdrom
    

    Этот "ок" и является приглашением среды OpenBoot. Первым делом я убедился что auto-boot восстановлен и моя система будет нормально загружаться. Затем я просмотрел имеющиеся устройства и решил загрузиться для установки ОС с встроенного привода ДВД, расположенного на передней стенке сервера. Если бы я использовал USB-DVD или удалёную Java-консоль (см. ниже), мне бы пришлось использовать "boot rcdrom".

    На этом основные отличия в загрузке SPARC-системы заканчиваются.

    Удалённая установка ОС Linux через ILOM

    В этот момент нам надо принять очередное решение - использовать доступ к "последовательной" консоли ILOM через ssh и устанавливать линукс в текстовом режиме или использовать графическую "видео" java-консоль и перенаправление DVD.

    Установка в текстовом режиме

    Этот режим можно использовать только если к вашему серверу уже подключен привод DVD и в нем находится диск с ОС. Вы должны были это сделать в самом начале, возможно используя USB привод для дисков DVD.

    Подключимся через ssh к ILOM как root, изменим порядок загрузки на "CDROM" (это временное одноразовое изменение) и перезагрузим машину. Запустим "последовательную" консоль и будем устанавливать линукс в текстовом режиме (введя "linux text" в приглашение загрузки). Для файловой системы "/boot" используем активный загружаемый логический диск, созданный на прошлом этапе.

    -- в командной строке ILOM как root
    -> show HOST boot_device
    
    /HOST
    Properties:
    boot_device = default
    
    
    -> set HOST boot_device=cdrom
    Set 'boot_device' to 'cdrom'
    
    -> show HOST boot_device
    
    /HOST
    Properties:
    boot_device = cdrom
    
    
    -> reset /SYS
    Are you sure you want to reset /SYS (y/n)? y
    
    
    -> start /SP/console
    Are you sure you want to start /SP/console (y/n)? y
    .... BIOS boot etc .....
    
    

    Экран загрузки BIOS отобразится как обычно, затем одноразово система загрузится с ДВД. После установки ОС система будет загружена уже с активного логического диска.

    Вывод с консоли на "последовательный" порт может прерваться во время установки и наверняка прекратится на этапе загрузки ОС. Смотрите ниже про настройки serial console.

    После успешной установки Линукс, сконфигурируйте сетевые адаптеры - теперь вы можете подключиться к вашему серверу уже как пользователь ОС, например root.

    На этом этапе у вас уже как минимум имеется подключенный к сети Ethernet порт "NET 0" - именно он станет первым сетевым адаптером (eth0) вашей системы, готовым к запуску sshd.

    Удалённая установка в текстовом режиме через ILOM завершена. Оставьте установочный линукс диск в приводе DVD. Мы получили доступ к "заблокированной" машине и установили на ней ОС, получив полный контроль над системой.

    Установка в графическом режиме

    Если в вашем сервере нет привода для компакт-дисков, вам придётся использовать именно этот метод.

    К сожалению, многие современные сервера не имеют приводов для оптических дисков. Как я уже сказал, вы можете попробовать подключить портативный USB привод для ДВД. Если же вариантов нет или вам необходимо переустановить систему удалённо и без физического доступа - запаситесь терпением.

    Первым делом найдите компьютер (физический или виртуальный) с 32-битной версией Windows 7 / XP. Перенаправление периферийных устройств работает только на 32-битной Windows.

    Подключите этот компьютер к сети так, чтобы IP адрес ILOM (в нашем случае 10.0.0.140) был доступен. Если нет - проверьте ещё раз сетевые настройки ILOM, особенно gateway и netmask.

    Убедитесь что ваш вебброузер (например, Firefox) имеет установленный и правильно работающий Java plugin. Ваша Windows также должна иметь Java JRE. Отключите все "хитрые" add-ons типа NoScript.

    Через вебброузер откройте домашнюю страницу ILOM по адресу 10.0.0.140. Зайдите как пользователь "root" с тем же паролем, что и для ssh (заданным вами же на предыдущем этапе). Слева найдите пункты "Remote control" - "Redirection". Нажмите на кнопку / ссылку "Launch Redirection". Запустится Java WebStart приложение, которое откроет весьма уродливое маленькое чёрное окошко, в котором будет виден "монитор" вашего сервера - да, это именно вывод с "видео карты" (framebuffer), а не serial console.

    Сверху, в меню web-консоли, выберите "Devices" - "CDROM Image". Укажите файл ISO-образа установочного диска Линукс. Этот файл должен находиться на вашем Windows компьютере. Перезапустите сервер через веб-страницу или через ssh оболочку ILOM, в появившемся BIOS нажмите F8 и выберите загрузку с DVD.

    Дальше вы можете устанавливать линукс в графическом режиме, как будто сидя перед монитором и используя клавиатуру и мышь. Учтите что весь ISO образ будет "отправлен" по сети с вашего локального Windows компьютера на удалённый Sun сервер. Как мы понимаем, время отклика на движения мыши будет долгим, а объём переданного сетевого трафика - большим.

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

    Отсутствующий вывод на serial console

    Если вы работаете с сервером T4, вам этот раздел не понадобится. В SPARC системах достаточно выбрать правильные параметры передачи ("9600n8") и serial console будет работать без осложнений, описанных ниже.

    При установке Линукса (или после неё) на Sun x86 серверах serial console обычно не работает. То есть вы видите сообщения BIOS а вот как только дело доходит до GRUB и ядра Линукс - текст не появляется на экране.

    Нам необходимо правильно сконфигурировать такие компоненты:

  • GRUB loader
  • Linux kernel
  • Upstart (ну или systemd, если не используете OUL6)
  • программку "getty"
  • Все эти компоненты, к сожалению, конфигурируются отдельно. Но есть и хорошая новость - при правильной установке GRUB'a и ядра в файле "grub.conf" оставшиеся элементы смогут определить правильную конфигурацию автоматически. Начнём.

    Изменения в файле "/boot/grub/grub.conf"

    В самом начале файла добавим такие строки, определяющие скорость и режимы передачи для GRUB:

    # Serial console: COM1(or ttyS0)
    serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
    terminal --timeout=5 serial console
    

    Эти поля диктуют самой программе GRUB как ей "разговаривать" с клиентом ("minicom") через последовательный порт.

    К параметрам ядра Linux в конце строки "kernel /vmlinuz ..." добавить:

    console=tty1 console=ttyS0,9600n8
    

    Параметры передачи ("9600n8") должны совпадать с установленными для GRUB. Добавляйте соблюдая последовательность записей.

    Проверка работы консоли

    Теперь подключитесь через ssh к ILOM, перезагрузите сервер и запустите в ILOM "start /SP/console".

    После сообщений BIOS должны появиться варианты ядер (выводимые GRUB'ом), затем начальные сообщения непосредственно ядра Linux, потом информация о запуске служб (типа "Bringing up loopback interface: [ OK ]", выводимые Upstart'ом) и наконец приглашение "agetty" для входа в систему ("myhost.myname login:").

    Убедитесь что "agetty" и "Upstart" используют самый простой вариант терминала - сложные ESC последовательности могут нарушить работу всех этих компонентов консоли. Я уверен что отсутствие цветов на терминале лучше отсутствия текста вообще :-)

    [root ~]# ps -ef | grep getty
    root      4051     1  0 18:51 tty1   /sbin/mingetty /dev/tty1
    ....
    root      4064     1  0 18:51 tty6   /sbin/mingetty /dev/tty6
    root      4259     1  0 18:54 ttyS0  /sbin/agetty /dev/ttyS0 9600 vt100-nav
    [root ~]#
    [root ~]# grep vt /etc/init/serial.conf
    exec /sbin/agetty /dev/$DEV $SPEED vt100-nav
    [root ~]#
    

    "vt100" - достаточно простой и подходящий для наших целей тип терминала. Также должен хорошо работать "xterm", особенно в консоли SPARC T4.

    Средства для работы с ILOM напрямую из ОС

    Кроме указанных выше способов подключения к сервисному процессору (напрямую через последовательный порт или по IP через ssh) существует возможность выдавать команды для ILOM прямо из командной строки ОС Linux, называется такой интерфейс IPMI (Intelligent Platform Management Interface). Этот же интерфейс имеется и в Solaris для SPARC.

    Естественно, что такая функциональность требует наличия модуля для ядра Линукс и отдельных программ для пользователя, использующих такой модуль. Убедитесь что соответствующие службы запущены:

    --Только для Линукс, в Солярис все работает сразу после установки.
    [root ~]# service ipmi start
    Starting ipmi drivers:                                     [  OK  ]
    [root ~]#
    [root ~]# chkconfig --list | grep ipmi
    ipmi            0:off   1:off   2:off   3:off   4:off   5:off   6:off
    [root ~]# chkconfig ipmi on
    [root ~]# ipmitool sunoem cli "ls /SP/network"
    Connected. Use ^D to exit.
    -> ls /SP/network
    
    /SP/network
    Targets:
    interconnect
    ipv6
    test
    ....
    Commands:
    cd
    set
    show
    
    -> Session closed
    Disconnected
    [root ~]#
    

    Вывод программы "ipmitool" будет точно такой же как и непосредственно из командной оболочки самого ILOM.

    В заключение

    Теперь вы знаете об удалённом администрировании Sun X3-2 и T4 серверов почти всё - удобной вам работы!

    Спасибо что зашли,

    Будьте благословенны!
    Денис

    12 Июня 2014 года.