Руководство для тех, кто делает первые шаги в администрировании систем Linux

Windows и Linux — конкуренты на рынке, но в сетях компаний они часто сосуществуют как взаимодополняющие платформы. Администраторы Windows, которым еще не приходилось иметь дело с Linux, должны подготовиться к этому событию, изучив основы ее администрирования. В предлагаемой статье разъясняются важнейшие принципы администрирования пользователей, файловых систем, сетей и программного обеспечения. О том, как получить дополнительную информацию о командах, файлах и программах Linux, рассказано во врезке «Оперативная подсказка Linux». Проблемы, рассматриваемые в статье, относятся ко всем дистрибутивам Linux, но в примерах используется синтаксис Red Hat Enterprise Server 3 (RHES), который может отличаться от других дистрибутивов Linux. Корректные команды и синтаксис для данного дистрибутива Linux можно найти в документации поставщика.

Первые шаги

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

Подобно FAT и NTFS, файловая система Linux организована в древовидную структуру — корневой каталог содержит подкаталоги. В Linux корневой каталог обозначается одной наклонной чертой (/), а в Windows он представлен символом накопителя и обратной наклонной чертой (например, C:); в качестве разделителя каталогов в Linux используется наклонная черта вместо обратной наклонной черты. В отличие от Windows, в Linux нет отдельных накопителей; все каталоги и смонтированные файловые системы (например, D: в Windows) в Linux находятся в корневом каталоге или под ним. Концепция монтирования будет рассмотрена чуть ниже. И наконец, примеры команд в статье начинаются с символа (#) — приглашения командной оболочки Linux, что соответствует использованию «C:» в начале команды. А теперь перейдем к практическим проблемам администрирования Linux.

Администрирование пользователей

Концептуально администрирование пользователей в Linux не отличается от Windows. Администратор определяет пользователей и группы пользователей, настраивает их учетные записи и назначает права доступа. Однако административный инструментарий Linux сильно отличается от Windows. С помощью этих инструментов можно создавать, удалять и изменять учетные записи пользователей и пользовательские группы.

Определить учетную запись пользователя — значит создать запись в файле /etc/passwd; содержимое файла показано в табл. 1. По определению любая запись в файле /etc/passwd представляет собой учетную запись пользователя, даже если она не активна. Как и в Windows, устанавливаемые программы Linux могут создавать дополнительные учетные записи пользователей. Каждая запись в /etc/passwd состоит из нескольких полей, в том числе имени пользователя, пароля и пути к домашнему каталогу. Пример записи в файле /etc/passwd:

dpuryear:x:500:500:Dustin Puryear:/home/dpuryear:/bin/bash

Данная запись указывает, что пользователь, dpuryear, имеет user ID со значением 500 и по умолчанию относится к группе 500 (в данном случае имя группы совпадает с именем пользователя), полное имя Dustin Puryear, домашний каталог /home/dpuryear и использует для работы в системе оболочку /bin/bash (Bourne Again Shell). Идентификатор User ID в Linux имеет то же назначение, что и SID в Windows. В Windows командная оболочка — cmd.exe; в Linux оболочка обычно /bin/bash.

Второе поле (пароля — password) содержит символ «x». В нашем примере в системе Linux используются пароли shadow (предоставляемые пакетом shadow-utils, который применяется во всех современных системах Linux), следовательно, все пароли в действительности находятся в файле /etc/shadow. Символ «x» служит просто заменителем и настоящего пароля не отражает. Нигде в системе настоящий пароль не хранится; запоминается хешированный вариант пароля, как и в Windows.

Чтобы создать новую учетную запись пользователя, администратор запускает команду adduser (useradd в некоторых системах) из оболочки bash от имени пользователя root. Adduser создает запись user и, если требуется, домашний каталог в файле /etc/passwd. Синтаксис adduser:

adduser username -option

где -option представляет параметр команды, например -u (user ID), -g (group), -d (home) или -s (shell). Например, для создания новой учетной записи с именем jdoe для сотрудника John Doe нужно ввести команду

# adduser jdoe

которая генерирует следующую запись в /etc/passwd:

jdoe:x:600:600::/home/jdoe:/bin/bash

Вводить параметры можно в команде adduser, например:

# adduser jdoe -c «John Doe» -m

Данная команда генерирует запись в /etc/passwd для пользователя jdoe; параметр -c задает настоящее имя пользователя как «John Doe», а параметр -m создает домашний каталог для jdoe. В Linux необходимо указать -m, иначе система не построит домашний каталог; домашний каталог примет вид /home/username, если не указан параметр -d, с помощью которого для домашнего каталога назначается другое место. В системах Windows домашний каталог создается при первой регистрации пользователя.

В отличие от Windows, Linux при добавлении новой учетной записи пользователя пароль не запрашивает. Необходимо использовать другую команду (/usr/bin/passwd), чтобы назначить первоначальный пароль для пользователя, например:

# /usr/bin/passwd jdoe

После ввода команды на экране появляются сообщения и приглашения, подобные следующим:

Changing password for user jdoe.

New password: password

Retype new password: password

passwd: all authentication tokens

updated successfully.

Для удаления учетной записи используется команда userdel (user delete):

# userdel jdoe

По умолчанию userdel не удаляет домашний каталог пользователя, даже если учетная запись была удалена. Чтобы удалить домашний каталог, необходимо применить команду userdel с параметром -r (remove):

# userdel jdoe -r

Администраторам Windows, вероятно, непонятно, как управлять пользователями всей сети, если приходится вручную вводить пользователей на каждый сервер Linux. Решение — задействовать систему управления пользователями в сети UNIX или Linux, такую как Network Information Service (NIS), или применить Active Directory (AD) для аутентификации.

Как правило, AD объединяется с Linux с помощью открытой программы Samba или Windows Services for UNIX (SFU). Приложение Winbind из состава Samba, в сущности, превращает Linux в члена домена с аутентификацией и авторизацией в AD. SFU обеспечивает интерфейс NIS с сетью AD.

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

Группы пользователей

В Linux и Windows группы значительно облегчают администрирование, так как с их помощью можно настраивать полномочия не для отдельных пользователей, а коллективно. В Linux группы определяются так же, как пользователи, в одном файле, но файл для групп — /etc/group. Содержимое /etc/group показано в табл. 2. Формат записи /etc/group следующий:

group-name:password:GID:member1, member2,...

В файлах etc/group часто встречается следующая запись:

sys::3:root,bin,adm

В этой записи sys — имя группы, 3 — идентификатор группы (group ID — GID), а пользователи root, bin и adm принадлежат группе. Как и в Windows, для внутреннего представления действительных объектов, в частности пользователей и групп, в Linux применяются числа, а пользователям предоставляется возможность обращаться к объектам по символическому имени, такому как sys. Следует обратить внимание, что в примере записи /etc/group нет поля password. Большинство групп в файле /etc/group пароля не имеют. В общем, поля пароля можно игнорировать; однако необходимо поместить разделитель полей (двоеточие — :) в позиции пароля, даже если он не указан.

Ввести новую группу можно командой groupadd. Например, чтобы создать группу students, следует ввести команду

# groupadd students

которая генерирует в /etc/group запись:

students:x:700:

После того как будет добавлена группа, в нее можно ввести пользователей, как в любую другую группу. Чтобы добавить в группу новых пользователей, можно вручную отредактировать /etc/group или запустить команду usermod, чувствительную к регистру символов, с параметром -G, например:

# usermod jdoe -G students,users

Завершив создание групп, следует определить права группы (выполнить команды, которые ограничат доступ группы к определенным каталогам). О двух применяющихся для этого командах — chgrp и chmod — будет рассказано ниже.

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

# groupdel students

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

Файловая система Linux

В Linux и Windows интерфейс файловой системы делается независимым от ядра и аппаратных средств с помощью драйверов файловой системы. Благодаря этому ядро обеспечивает стандартный интерфейс, который легко изменить в соответствии с требованиями новых технологий. Linux обеспечивает доступ к старым и новым файловым системам, в том числе файловым системам ext2 и ext3 и DOS FAT. В целом администратору не нужно беспокоиться о механизме сохранения и считывания данных с диска. Однако необходимо знать, как монтировать файловую систему (предоставить доступ к ней пользователям), отыскивать и исправлять поврежденные файловые системы. Кроме того, следует понимать, как назначаются разрешения для каталогов и файлов.

При монтировании файловая система привязывается к корневой файловой системе Linux таким образом, чтобы быть доступной пользователям и приложениям. До тех пор пока файловая система не смонтирована, находящиеся в ней файлы недоступны. Данная процедура отличается от Windows тем, что, когда Windows обнаруживает диск с файловой системой известного типа, она немедленно делает его доступным в качестве диска с символьным обозначением. Windows Server 2003, Windows XP и Windows 2000 Server также обеспечивают монтирование файловых систем, поэтому емкость текущего диска с символьным обозначением можно увеличить, если монтировать новый диск к каталогу на данном диске.

Для монтирования файловой системы используется команда mount, например:

# mount /dev/cdrom /mnt/cdrom

Данная команда монтирует файловую систему на накопителе CD-ROM к каталогу /mnt/cdrom (/mnt/cdrom указывает просто на устройство чтения CD-ROM). После монтирования файловой системы можно обращаться к CD-ROM через /mnt/cdrom.

Завершив работу с файловой системой, ее нужно демонтировать. Для этого используется команда umount:

# umount /mnt/cdrom

Linux совместима с файловыми системами FAT, FAT32 и NTFS, но ненадежно работает с NTFS. Однако нестабильная поддержка NTFS не будет препятствием, так как в большинстве производственных серверов не используется двойная загрузка, поэтому файловая система NTFS не применяется.

В Windows можно отобразить удаленную общедоступную файловую систему типа Server Message Block/Common Internet File System (SMB/CIFS) на символ локального диска:

C: net use x: fileserverfiles

В Linux имеется аналогичная возможность монтировать файловую систему NFS, применив команду mount:

# mount fileserver:/files /mnt/files

Файловая система SMB/CIFS без труда монтируется в большинство современных дистрибутивов Linux с помощью команды

# mount -t smbfs //fileserver/files/mnt/files

Команда напечатана на двух строках из-за недостатка места. Эта команда монтирует файловую систему типа SMB (-t smbfs) с сервера Windows и общедоступный ресурс //fileserver/files

(fileserverfiles в Windows) к локальной точке монтирования /mnt/files.

Процесс монтирования можно автоматизировать; в частности, система может автоматически монтировать несколько файловых систем при начальной загрузке. Файл /etc/fstab содержит информацию об устройствах, точках монтирования, типах файловых систем и методах проверки ошибок. Записав в этот файл соответствующую информацию, можно автоматически выполнить основную работу по монтированию файловой системы.

Типичная запись в /etc/fstab представлена на экране 1. Она указывает, что /dev/cdrom необходимо монтировать в /mnt/cdrom; Linux должна определить, какая файловая система используется (auto); файловая система должна быть смонтирована как доступная только для чтения (ro). Последние два элемента (0 и 2) относятся к команде dump system и в данном случае не имеют особого значения. Как правило, достаточно задействовать параметры, показанные на экране 1.

Теперь можно монтировать и демонтировать CD-ROM, указывая только каталог:

# mount /mnt/cdrom

# umount /mnt/cdrom

Linux будет монтировать CD-ROM при начальной загрузке системы. При добавлении новых дисков в систему Linux необходимо сначала отформатировать их с помощью команды

mkfs.ext3

(аналогичной команде Format системы DOS), а затем внести запись устройства в /etc/fstab, чтобы файловая система была доступна при начальной загрузке.

Устранение неисправностей файловой системы

Файловые системы Linux могут быть повреждены, как и файловые системы Windows (например, в результате отключения электроэнергии). В новых файловых системах, таких как ext3 и ReiserFS, имеются функции протоколирования. Поэтому их поведение похоже на NTFS, если они некорректно демонтированы перед перезагрузкой системы: вместо длительной проверки файловой системы при начальной загрузке новые файловые системы Linux проводят быструю самокорректировку. Журнальные функции обеспечивают целостность файловой системы, но не гарантируют сохранности данных пользователя при внезапном отключении электропитания сервера.

Иногда полезно инициировать проверку файловой системы. В Windows для этого можно использовать команду Scandisk или Chkdsk; в Linux необходимо применить команду fsck (file system check):

# fsck -c /dev/hda2

Данная команда запускает проверку файловой системы на устройстве /dev/hda2. Как правило, запускать fsck на смонтированной файловой системе с возможностью записи не следует. Нужно демонтировать файловую систему, а затем запустить fsck или монтировать файловую систему только для чтения, запретив запись. Если файловая система находится на загрузочном томе (например, /dev/hda1 в системе на базе IDE), то команду fsck в файловой системе следует выполнять только в однопользовательском режиме работы. Задать однопользовательский режим (называемый runlevel в Linux) можно с помощью команды

# telinit 1

Разрешения файловой системы

В основе Linux лежит работа с файлами, поэтому большинство возможностей пользователей и приложений реализуются через действия с набором файлов. Меры безопасности Linux также ориентированы на файлы и почти целиком построены на основе разрешений доступа к файлам или каталогам. NTFS в Windows обеспечивает сложную систему разрешений на основе списков управления доступом (ACL). Теоретически Linux также поддерживает ACL, но эта функция часто не активизирована и даже не компилирована в ядре операционной системы. Из-за недостаточно надежной поддержки ACL в Linux в данной статье акцент сделан на более традиционной модели разрешений.

Linux обеспечивает три типа разрешений, которые можно применить к файлам: чтение (read), запись (write) и выполнение (execute) (r, w и x). Кроме того, администратор может назначать разрешения для трех типов пользователей: владельца (owner), группы (group) и мира (world) (u, g и o). Owner — не кто иной, как владелец файла; group — владелец группы, а world — множество пользователей, которые не принадлежат к числу владельцев и не входят в группу. В сущности, world охватывает всех пользователей, подобно группе Everyone в Windows.

Как отмечалось выше, разрешения для группы назначаются с помощью команд chgrp и chmod. Например, чтобы ограничить доступ к каталогу /files/students только пользователями группы students, нужно выполнить команды

# chgrp -R students /files/students

# chmod -R u=rwx,g=rwx /files/students

Параметр -R указывает, что chgrp и chmod должны применять изменения рекурсивно, а поле u=rwx,g=rwx определяет, что owner имеет право чтения, записи и выполнения, также как group.

Чтобы разрешить доступ к файлу только владельцу, нужно выполнить следующую команду:

# chmod u=rwx /user/file

Эквивалентная команда в Windows — Cacls:

C: cacls c:userfile /e /p bob:f

/e указывает, что команда Cacls редактирует, а не заменяет ACL, а /p bob:f предоставляет пользователю по имени Боб полные права в c:userfile.

Чтобы разрешить доступ к файлу как владельцу, так и всем остальным членам группы, нужно ввести команду

# chmod u=rwx,g=rwx /user/file

Следует помнить, что в Linux можно назначать разрешения только для одной группы, тогда как в NTFS разрешения можно предоставлять нескольким группам с помощью списков ACL. Некоторые файловые системы Linux поддерживают ACL, но они не используются по умолчанию. Более подробную информацию о chmod и chgrp можно получить на страницах man соответствующих команд. О страницах man рассказано во врезке «Оперативная подсказка Linux».

Сетевые функции

Сетевые функции — неотъемлемая часть Linux, и, как и в Windows, здесь практически невозможно удалить сетевые компоненты, не нарушив работу операционной системы (однако удалить браузер гораздо проще). В Windows для управления сетью необходимо определить и настроить конфигурацию сетевых адаптеров, запустив утилиту Network Connections в панели управления. Процесс настройки сетевых соединений в Windows можно автоматизировать с помощью команды Netsh. Linux, как и Windows, располагает инструментами командной строки и графическим интерфейсом для управления сетью.

Пройдем по этапам настройки системы Linux для работы в сети. Для начала необходимо определить, что известно операционной системе о сетевом адаптере. Сделать это проще всего, запустив команду ifconfig, которая сообщает о сетевых адаптерах, известных операционной системе:

# ifconfig eth0

Устройство eth0 — просто первый сетевой адаптер, обнаруженный Linux. В Windows данное устройство называется Local Area Connection, его можно найти в разделе Network Configuration или с помощью команды Ipconfig. Ближайший эквивалент Windows для ifconfig — ipconfig /all. После выполнения ifconfig на дисплее появляется информация, подобная представленной на экране 2. Теперь известно, что сетевой адаптер функционирует и его можно настроить с помощью ifconfig:

# ifconfig eth0 192.168.1.10

netmask 255.255.255.0

Команда напечатана на двух строках из-за недостатка места. При запуске этой команды на дисплее отображается интерфейс eth0 (первого сетевого адаптера в системе) с IP-адресом 192.168.1.10 и маской подсети 255.255.255.0. Linux автоматически добавляет сетевой маршрут в таблицу маршрутизации, и администратор может тестировать по ping другие машины в локальной сети с помощью команды

# ping -c 1 192.168.1.1

Параметр -c указывает, что команда Ping тестирует удаленный сервер только один раз. Затем команда отображает результаты, показанные на экране 3 (несколько строк на экране 3 расположены на нескольких строках из-за недостатка места.) В Red Hat можно автоматизировать только что описанный процесс сетевого конфигурирования и сохранить конфигурацию после перезагрузки. Для этого достаточно ввести команду

# netconfig

Если требуется установить соединение с Internet, необходимо выполнить два дополнительных шага: настроить конфигурацию выбираемого по умолчанию маршрутизатора и DNS-серверов. Для настройки маршрутизатора используется команда route (похожая на команду route системы Windows):

# route add -net default

gw 192.168.1.1

Команда (показанная на двух строках) указывает, что маршрутизатор добавлен к сети (а не просто к хост-машине), что сеть — default (значение, использованное при назначении маршрутизатора) и адрес маршрутизатора (gw) — 192.168.1.1.

Наконец, в файл /etc/resolv.conf заносятся серверы DNS. Таким образом, настраивается преобразование адресов сервера DNS. При этом используется следующий синтаксис:

nameserver dns1.example.com

nameserver dns2.example.com

Как отмечалось выше, процесс настройки сети можно не проводить вручную, а автоматизировать с помощью команды netconfig. Netconfig позволяет настроить сеть для работы с DHCP или статическим IP-адресом. Она работает так же, как мастер Add Network системы Windows. Использовать netconfig гораздо проще, чем описанный выше процесс, но, изучив возможности netconfig, администратор получает более глубокое понимание сетевых функций Linux. Стоит изучить и другие команды Linux, имеющиеся в Windows, такие как netstat и nslookup.

Установка программ и управление ими

Управлять программами в системах Linux зачастую так же сложно, как и в Windows. В Linux программное обеспечение распространяется различными способами. В большинстве дистрибутивов, например Red Hat with Red Hat Package Manager (RPM), применяется собственный формат установочного пакета. Пакеты RPM совместимы с большинством дистрибутивов Linux и наиболее близки к настоящему стандарту для пакетов Linux.

Собственно RPM-файл представляет собой файловый архив, содержащий все программные и установочные сценарии, необходимые для развертывания приложения, что очень напоминает setup.exe или .msi-файл в Windows. Чтобы установить RPM, нужно запустить команду rpm с RPM-файлом в качестве аргумента:

# rpm -i program.rpm

Параметр -i указывает, что нужно установить program.rpm. Чтобы удалить установленную программу из системы Linux, следует запустить команду rpm и указать параметр -e (extract) с именем программы:

# rpm -e program

Выяснить, была ли установлена программа, можно с помощью команды rpm и параметра -q (query) с именем программы:

# rpm -q program

Данная процедура напоминает использование утилиты Add or Remove Programs в Windows. Большинство систем Linux, например RHES, располагают графическим интерфейсом для RPM, и сходство еще более усиливается.

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

1. Извлечь файлы из архива с помощью команды tar (команда tar копирует файлы в архив или восстанавливает их из архива):

# tar xfz program.tgz

2. Заменить текущий каталог каталогом, созданным при извлечении файлов из program.tgz командой tar:

# cd program/

3. Скомпилировать приложение, запустив следующие команды:

# ./configure

# make

# make install

На этом установка приложения завершается. Данное приложение не использовало диспетчер пакетов, такой как RPM, поэтому удалить его трудно. Как правило, в первую очередь запускается команда

make uninstall

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

Вперед вместе с Linux!

Администраторы систем Linux и Windows выполняют одни и те же задачи: они управляют пользователями, устанавливают и удаляют программы, отыскивают неисправности в сетевых соединениях, и, конечно, иногда им требуется передохнуть. Администраторам, которым приходится управлять системами Linux в среде Windows, должно очень пригодиться знание основных команд и процедур, позволяющих упростить администрирование систем Linux.


Оперативная подсказка Linux

Оперативная справочная система Linux достаточно редко используется администраторами Windows. Как и Windows, Linux располагает подробными техническими руководствами, всегда доступными пользователям. Для доступа к Linux Help применяется команда man (сокращение от manual). Для вывода на экран информации (примеров применения параметров и т. д.) о команде, программе или файле следует ввести man и указать имя команды. Например, чтобы получить информацию о команде ls, соответствующей команде DOS Dir, нужно ввести

# man ls

Отображаемая на экране информация называется страницей man. Прокручивать текст на странице man можно с помощью клавиш перемещения курсора вверх и вниз. При нажатии на клавишу «пробел» страница перемещается на один экран (80 строк) вниз.


Виртуальные машины повышают эффективность информационного центра

Развернув несколько операционных систем на двух серверах, компания InfoShare существенно ускорила тестирование и внедрение приложений

У большинства администраторов термин «интероперабельность» ассоциируется с совмещением различных операционных систем Windows с другими платформами — например, Windows Server 2003, Windows NT Server 4.0, Red Hat Linux и Oracle. Такого гармоничного сосуществования операционных систем и приложений удалось добиться специалистам InfoShare — информационного подразделения медицинской организации AtlantiCare из Нью-Джерси. Однако для выполнения приложений на нескольких различных операционных системах требуется множество серверов и просторные помещения. Год назад специалистам InfoShare удалось найти решение, как сдержать процесс «расползания серверов». Группа во главе с техническим руководителем проекта Роджером Ванном консолидировала приложения, работавшие с несколькими операционными системами Windows и Linux примерно на 160 серверах, в многочисленные виртуальные машины (virtual machine, VM) на двух физических серверах с Microsoft Virtual Server 2005.

«Наш информационный центр недавно расширялся, но нам по-прежнему не хватало пространства и энергоресурсов, — рассказывает Ванн, ИТ-подразделение которого обеспечивает сетевые операции, обслуживание и развертывание приложений почти для 4000 сотрудников медицинской сети AtlantiCare в более чем 50 точках страны. — Мы работали над несколькими проектами, выполняли большую работу по обслуживанию, и еще несколько проектов были внесены в план». Серверы информационного центра выполняют приложения на разнообразных операционных системах — в основном Windows (Windows 2003, Windows 2000 Server и NT 4.0), но несколько приложений работают с Red Hat Linux, а для одного используется база данных Oracle. В центре не было свободного места даже для одной лишней машины.

«Тогда мы задумались над виртуализацией, — продолжает Ванн. — Вместо физического расширения информационного центра — дорогостоящего варианта, для которого требовалось множество дополнительных источников питания и значительное увеличение энергетической мощности, — мы решили рассмотреть VM-продукты». Благодаря VM-программам специалисты InfoShare смогли консолидировать серверы, запустив различные гостевые операционные системы на множестве VM на одном физическом сервере. Программное обеспечение VM обычно устанавливается на базовую операционную систему и реализует программный слой (виртуальную машину), которая эмулирует аппаратные средства (BIOS, различные устройства и контроллеры) для гостевой операционной системы.

В сентябре 2003 г. Ванн и Эйлин Хамбрехт, директор по системам и программированию AtlantiCare, попросили специалистов компании IBM, партнера VMware, оценить возможность применения VMware GSX Server. Вскоре Ванн и Хамбрехт приступили к переговорам с Microsoft, которая незадолго до этого приобрела поставщика VM-продуктов Connectix и готовилась поставлять Connectix Virtual PC for Windows 5 как собственный продукт. Сравнив стоимость лицензий, специалисты InfoShare пришли к выводу, что участие на льготных условиях в программе Technology Adoption Program (TAP) компании Microsoft и эксперимент с Microsoft Virtual Server 2005 Release Candidate RC будут наиболее экономически выгодным решением для InfoShare и AtlantiCare. По плану Virtual Server 2005 должна была быть выпущена в широкую продажу 1 октября 2004 г.

Консолидация и интероперабельность

В значительной степени привлекательность виртуального решения для Ванна и его ИТ-группы заключалась в том, что VM-технология позволяла InfoShare продолжать параллельное использование Windows и других операционных систем. Наряду с большим числом приложений для Windows 2003 и Windows 2000 Server, у InfoShare было несколько унаследованных программ на машинах NT 4.0 и трех системах Linux — всего около 20 приложений. Требовалось также ускорить процесс тестирования и внедрения приложений. Кроме того, InfoShare проводила крупномасштабную миграцию систем AtlantiCare на Microsoft Exchange Server 2003, Microsoft Systems Management Server (SMS) 2003 и Active Directory (AD). Ванн надеялся, что консолидация многочисленных физических серверов в VM на двух или трех компьютерах позволит ИТ-специалистам сосредоточиться на важных проектах вместо управления десятками серверов и ускорит миграцию.

ИТ-специалисты InfoShare обнаружили, что работать с Virtual Server 2005 несложно. «Продукт очень легко освоить и использовать благодаря инструментам управления на базе браузера», — комментирует Ванн. Для консолидации и тестирования операционных систем и приложений на платформе Virtual Server 2005 потребовалось около двух месяцев, и в декабре 2003 г. InfoShare ввела в эксплуатацию свой первый сервер, Virtual Server 2005. В настоящее время 25 виртуальных машин размещено на одном 8-процессорном сервере IBM eServer X445 Series и 8 виртуальных машин — на другой такой же машине. Для консолидации было куплено три сервера, но пока задействовано только два.

Спасение информационного центра

Благодаря виртуализации Ванн и его ИТ-группа достигли всех своих целей. Ванн и Хамбрехт не считают себя героями, но не скрывают, насколько полезными консолидация серверов и применение VM оказались не только для ИТ-деятельности InfoShare, но и для AtlantiCare. «Виртуализация обеспечивает огромное пространство для расширения», — считает Ванн. Еще более важное преимущество VM заключается в том, что развертывать новые серверы для тестирования и внедрять новые приложения можно за несколько минут, а не недель, необходимых для тестирования и развертывания без использования консолидации серверов. «До виртуализации нам требовалось много времени даже для доставки тестовой системы в информационный центр из-за длительной процедуры заказа, физической транспортировки и установки сервера, а также бумажного оформления», — отметил Ванн.

VM помогают управлять интенсивной миграцией. «Virtual Server 2005 значительно ускоряет эти операции, сокращая потребность в аппаратных средствах, — утверждает Ванн. — Запуская приложения в VM, можно строить и дублировать тестовую среду. Мы можем быстро воспроизвести среду, так как располагаем виртуальными контроллерами домена (DC), которые могут перенести всю схему AD целиком». Четыре из пяти контроллеров домена InfoShare являются виртуальными, многие службы — такие как DHCP, DNS и WINS, — работают в VM. Еще одна важная служба, работающая в VM, — база данных совместимости лекарственных препаратов Oracle, которая представляет собой часть более крупного приложения Computerized Provider Order Entry (CPOE). С помощью базы данных фармацевты AtlantiCare обнаруживают комбинации лекарств, которые могут нанести вред пациенту. InfoShare также располагает несколькими приложениями Linux, в том числе разработанной внутри компании программой на базе Web, в которой используется внутренняя база данных на MySQL. Ванн высоко оценивает скорость внедрения приложений. «Получив запрос на разработку приложения, мы за один день составили технические условия и также за один день построили VM для него», — заявил он. Вскоре ИТ-отдел развернул приложение на платформе Linux.

Платформенная независимость

InfoShare успешно эксплуатирует Virtual Server 2005 уже в течение года, и Ванн и его сотрудники не представляют себе жизни без VM. В планах InfoShare на будущее — подбор новых систем для консолидации (старые машины будут удалены из сети, а их операционные системы и приложения перенесены на VM) и перевод файловых и принтерных служб на AD и VM. С помощью VM специалистам InfoShare удалось без особого труда наладить совместную работу разнородного программного обеспечения, одновременно сократив закупки оборудования и затраты на обслуживание, но самое главное — теперь они могут быстрее, чем раньше, доставлять информационные услуги потребителям.

Энн Грабб


Дастин Пурье (dpuryear@usa.net) - сетевой администратор, автор заметок в 32BitsOnline.com, а также автор книги «Integrate Linux Solutions into Your Windows Network» (Prima)