Журнал LinuxFormat - перейти на главную

LXF151:По рецептам доктора Брауна

Материал из Linuxformat
Версия от 16:21, 25 декабря 2017; Ssr (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
По рецептам доктора Брауна / Рецепты доктора Брауна

Д-р Крис Браун: Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает.

Содержание

Месяц годовщин

Август выдался обильным на годовщины. Например, первый IBM PC был анонсирован 12 августа 1981 г. (30 лет назад), а днем рождения Linux обычно считается 25 августа 1991 г., когда Линус Торвальдс разместил ныне знаменитое сообщение в новостную группу comp.os.minix: «Я разрабатываю (бесплатную) ОС (это просто хобби, она не будет большой и профессиональной, как GNU)...». Провидец из него вышел неважный («не будет большой...»), но его навыки программиста и качества лидера оказались гораздо важнее! Так или иначе, 20-летняя годовщина не хуже любой другой даты подходит для того, чтобы взяться за его книгу «Просто для забавы [Just For Fun]», написанную совместно с Дэвидом Даймондом [David Diamond]. Она была опубликована в 2001 году, и в ней только первая половина истории, но мне очень нравится в ней личный и эмоциональный рассказ Торвальдса, с которым вы понимаете, что в интересе к подобным вещам нет ничего ненормального.

Кодовые слова

Книга Глина Муди [Glyn Moody] «Код бунтаря [Rebel Code]» тоже вышла в 2001 году, но ей недостает отпечатка личности, отличающего книгу Торвальдса. Более обширную и свежую (2008 г.) перспективу можно найти в книге Питера Сэйласа [Peter Salus] «Демон, гну и пингвин [The Daemon, the Gnu and the Penguin]». Сэйлас, которого обычно называют «историком UNIX», пожалуй, лучше всего известен по своей ранней книге «Четверть века UNIX», опубликованной в 1994 году. По-моему, сейчас есть все шансы начать работу над книгой «Четверть века Linux», которая вышла бы в 2016 году. Есть добровольцы? А если вы предпочли бы более краткую дозу истории, на сайте http://linuxfoundation.org/20th есть интересная инфографика и красивый анимированный ролик, которые помогут вам сказать: «С днем рождения!» LXF00.tut1.chris2.psd По рецептам доктора Брауна Эзотерическое системное администрирование из причудливых заворотов кишок серверной

80267.png

Оркестр Ubuntu

Ощутили диссонанс при развертывании сервера? Позвольте Orchestra вернуть гармонию в вашу жизнь.

Пусть вам нужно установить 50 новых серверов Linux. Вы вряд ли захотите вставлять установочный диск в каждый, снова и снова проходя через этапы установщика. Вы бы предпочли такой сценарий: (1) достать серверы из коробок, (2) подключить их к сети, (3) включить их и (4) уйти, зная, что придя позже, вы обнаружите 50 готовых систем.

Но если серверы поддерживают PXE-загрузку, это действительно возможно, хотя потребуется масса настроек – вероятно, DHCP-сервера, TFTP-сервера для размещения загрузочного образа и зеркала репозиториев (или прокси) для доступа к пакетам.

В прошлом мне приходилось развертывать подобное (как, разумеется, и бессчетному количеству других сисадминов), и я даже подготовил специальную лабораторную работу для курса Ubuntu Server, но так и не отважился провести ее в классе, потому что, честно говоря, это тянет скорее на небольшой исследовательский проект, чем на лабораторную работу.

Приятное виртуальное маневрирование

Чтобы облегчить свои мучения, воспользуйтесь проектом Cobbler от сообщества Fedora (https://fedorahosted.org/cobbler) – он автоматизирует установку сервера и поддерживает PXE-загрузки на новые системные блоки без установленной ОС и установку на виртуальные машины. Cobbler также можно установить в Ubuntu и использовать для развертывания систем Debian, Ubuntu, CentOS, Fedora, Red Hat и SUSE. Серверная команда Дастина Керкленда [Dustin Kirkland] в Canonical зашла еще дальше с проектом Orchestra, релиз которого запланирован на Ubuntu 11.10. Orchestra управляет несколькими открытыми программами, включающими: 173219.png Cobbler (портирован в Ubuntu); 173221.png squid-deb-proxy (пакет, упрощающий создание прокси для репозиториев Ubuntu); 173223.png puppetmaster (утилита управления конфигурацией, применяемая для автоматизации развертывания серверов с заданной нагрузкой); 173225.png cloud-init (механизм запуска скрипта настройки при первой загрузке системы в виртуальной машине). На разработку Orchestra отчасти повлияло решение переключиться с Eucalyptus на OpenStack в 11.10, в результате которого (опять) понадобилось изменить технологии установки. Мы более подробно расскажем об Orchestra, наверное, в следующем месяце, когда сумеем его опробовать.

Узнайте больше

Документация Cobbler – на сайте https://fedorahosted.org/cobbler. Также есть довольно подробная man-страница и (довольно старая) статья в Red Hat Magazine (http://magazine.redhat.com/2007/08/10/). Сейчас главным источником информации об Orchestra, похоже, является Дастин Керкленд; чтобы посмотреть его интервью на саммите разработчиков Ubuntu в Будапеште, наберите в Google «UDS-O Dustin Kirkland Orchestra».


Управление облаком с RightScale

Ищете ли вы быстрый и дешевый вариант управления облаком или средство корпоративного уровня, вам подойдет RightScale.

RightScale – одно из многих решений, предоставляющих web-интерфейс для создания серверов в облаке Amazon EC2 и управления ими. Так как в web-сервисах Amazon уже есть прекрасная консоль управления, резонно спросить, какие добавочные преимущества есть у RightScale. Ну, во-первых, RightScale может управлять серверами на множестве облаков – например, гибридном публичном/частном облаке. Здесь также есть шаблоны для построения преднастроенных серверов через использование базового образа системы и добавление скриптов, запускаемых на этапах загрузки, работы и выключения системы. Каждый шаблон запускает сервер определенного типа, устанавливает необходимое ПО и настраивает его. Библиотека шаблонов RightScale огромна – мы насчитали около 150, но примерно половина из них доступна только владельцам платных учетных записей. Большинство шаблонов предназначены для web-сервисов Amazon, но есть несколько и для Rackspace, включая NFS Server Master, PHP FrontEnd и LAMP в одном шаблоне. Также можно создавать собственные шаблоны или изменять готовые. Наряду с отдельными серверами RightScale также позволяет управлять развертыванием кластеров серверов, совместно выполняющих общую задачу. Например, в сборке может быть четыре сервера – два клиентских узла с балансировкой нагрузки и основной и вторичный серверы баз данных. Сборки позволяют управлять всем кластером как единым целым, а не каждым сервером отдельно. Например, пресловутым щелчком мыши можно клонировать всю сборку. Вы можете, скажем, создать копию действующей сборки для использования в качестве вспомогательного сервера для выполнения тестов производительности и еще одну копию для внутреннего использования. RightScale также будет отслеживать стоимость работы всего кластера (т. е. ваши платежи web-сервисам Amazon). Мониторинг и оповещения В серверных шаблонах RightScale есть демон collectd, который периодически собирает статистику производительности и отправляет ее на сервер ‘Sketchy’ RightScale, который автоматически устанавливается в каждую создаваемую вами систему. Этот сервер генерирует диаграммы, выводимые на панели управления RightScale. Например, для сервера LAMP можно построить графики количества запросов Apache или запросов к базе данных в секунду, а также более общих параметров загрузки, таких как время простоя центрального процессора или использования памяти. Можно затребовать график статистики за дневной, недельный, месячный и годичный период. Также можно добавить миниатюры этих графиков в раздел Быстрый мониторинг [Quick Monitoring] панели управления, чтобы они отображались всегда. В шаблоне сервера также задаются оповещения, которые отслеживают различные параметры серверов и выдают предупреждения (например, отправляют электронное письмо) при превышении ими заданного порога. Например, оповещение rs cpu overloaded срабатывает, когда время простоя процессора слишком мало. Другие примеры ситуаций срабатывания оповещений – слишком высокая входящая или исходящая сетевая активность, малый объем свободной оперативной памяти, недостаток свободного места в файле подкачки или на смонтированном диске. У каждого условия срабатывания есть «класс оповещения», который задает выполняемое при этом действие. Например, при срабатывании оповещения класса «предупреждение» каждый день будет отправляться электронное письмо; классу «критическое» соответствует отправка письма каждые 10 минут, а (что более интересно) классу «увеличение» – автоматическое добавление в массив новых серверов. Попробуйте Чтобы попробовать RightScale в действии, зайдите на www.rightScale.com и заведите бесплатную однопользовательскую учетную запись. Конечно, чтобы сделать что-то полезное, вам также потребуется учетная запись на AWS (web-сервисы Amazon). Сама учетная запись опять же бесплатна, но при создании серверов или жестких дисков вы начинаете платить почасовую плату за их использование. А если вы захотите поднять учетную запись RightScale до серьезного коммерческого использования, это будет стоить денег. Стандартная версия (Standard edition) обойдется в 500 долларов в месяц; затем возможности, уровень поддержки и цены постепенно увеличиваются в версиях «Премиум [Premium]», «Корпоративная [Corporate]» и «Предприятие [Enterprise]». Подробности ищите по ссылке www.rightScale.com/products/plans-pricing. Если вы хотите развернуть несколько серверов, вы будете платить почасовую плату AWS, но за попытку «проверить все на практике» в течение нескольких дней вы заплатите всего несколько долларов. Массивы и эластичность Массивы серверов (возможность, доступная только в платных версиях RightScale) – наборы экземпляров EC2, в которых число систем автоматически изменяется со временем на основе заданного набора оповещений и расширений. Например, массив можно нарастить, если в системах в составе массива нагрузка процессора превышает указанный порог. Увеличение массива можно выполнять на базе очереди, так что число работающих систем зависит от числа заданий во входной очереди. LXF151.sysadmin.rightscale_dashboard.jpg 171626.png Через панель инструментов легко получить доступ ко всем компьютерам AWS. Там также показываются графики мониторинга, предоставляемые RightScale. Основы виртуализации Виртуализация – пожалуй, самая яркая технология десятилетия. Изучим основы (и перейдем к практике) прямо сейчас.

Начнем с простого определения: виртуализация создает иллюзию работы нескольких отдельных компьютеров (называемых виртуальными машинами или ВМ) на одном физическом компьютере. У каждой из этих ВМ, как кажется, есть собственный процессор, память, диски, сетевые карты, USB-порты и т. д. Их можно включать, загружать систему, завершать ее работу и выключать независимо друг от друга. Новые ВМ можно создавать при необходимости и уничтожать (или останавливать), когда они больше не нужны. На каждую ВМ можно установить операционную систему, и на разных ВМ внутри одного компьютера не обязательно устанавливать одну и ту же: на одной может быть Ubuntu Linux, на другой – Red Hat, на третьей – Windows 7, а на четвертой – Windows XP. С точки зрения архитектуры, программный слой, сотворяющий это волшебство, можно выполнять либо непосредственно на физических устройствах, либо поверх главной ОС. Эти два варианта иногда называют гипервизорами типа 1 и типа 2 соответственно – классификация Роберта Голдберга [Robert Goldberg] из его докторской диссертации 1973 г. в Гарварде. В мире Linux, пожалуй, самая известная реализация типа 1 – это Xen, а популярные продукты VMware Workstation и VMware Player относятся к типу 2. Операционные системы на виртуальных машинах называют гостевыми. Идея виртуализации устройств вряд ли захватит вас, пока вы не увидите ее в действии. Для меня этот момент настал, когда я впервые включил ВМ и оказался в ее BIOS. После установки Linux (с обычного установочного диска) и наблюдения за тем, как установщик обнаруживает то, что ему кажется настоящими устройствами, стало ясно, насколько полную иллюзию наличия настоящих устройств создает виртуализация. Виртуальные устройства могут сильно отличаться от соответствующих физических – например, в них может быть несколько приводов компакт-дисков (виртуализованных в виде ISO-образов файлов в главной ОС), а виртуальный сетевой интерфейс почти наверняка будет не той марки, как тот, что обеспечивает настоящее физическое соединение. Место для виртуальных дисков берется из файловой системы главной ОС. В ней оно будет представлено одним или несколькими большими файлами. Стоит на минуту сравнить степень изоляции, предоставляемую ВМ, со степенью изоляции процесса внутри ОС. Все процессы в одной ОС до некоторой степени существуют отдельно друг от друга. У каждого свое адресное пространство памяти, и все они работают, воображая, что владеют всем процессором. Но они совместно используют файловую систему, IP-адрес и пространство портов TCP, и если, скажем, один из этих процессов – web-сервер, слушающий порт 80, никакому другому процессору нельзя использовать этот порт. И, конечно, они совместно используют ОС. Содержите себя Виртуальные машины предоставляют довольно высокий уровень самодостаточности. Например, на каждой ВМ своя файловая система, отдельный IP-адрес и отдельное пространство портов TCP (поэтому на разных ВМ можно иметь несколько web-серверов, слушающих порт 80, и они будут прекрасно работать). Каждую ВМ можно запускать и останавливать, не затрагивая остальные. На нее можно добавлять или удалять (виртуальные) устройства, и на ней может быть установлена собственная ОС. Для пользователей настольных систем Linux (включая меня) виртуализация – удобный способ установить и испробовать последние и лучшие дистрибутивы Linux, не касаясь главной ОС. А для пользователей, которые перешли в Linux, оставив себе в наследство несколько Windows-программ, запускать Windows на ВМ гораздо удобнее, чем в конфигурации с двойной загрузкой. Обучающая компания Learning Tree International активно использует виртуализацию для учебных занятий. Компьютер, с которым студенты работают на практических занятиях – как правило, ВМ (Red Hat, Windows 7, Solaris) на компьютере с Windows XP. Это позволяет в большой степени стандартизировать создание учебных материалов и их загрузку на учебные компьютеры. Виртуальные машины работают в полноэкранном режиме, и в большинстве случаев до конца недели студенты даже не подозревают о существовании главной ОС, если только случайно не нажмут намеренно неочевидную комбинацию горячих клавиш, используемую для сбрасывания фокуса ввода ВМ. В учебном курсе Canonical «Развертывание Ubuntu Server» за счет виртуализации с KVM/Qemu каждый студент получает три сервера для лабораторных упражнений. На них, например, демонстрируется развертывание прокси и зеркал для репозиториев Ubuntu. Студентам прекрасно известно, что используется виртуализация, так как они должны переключаться между ВМ и даже создавать собственные. Пожалуй, значение виртуализации лучше всего оценить в серверной. Обычно многие сервера потребляют лишь малую часть своей мощности: типовые цифры – это от 10 % до 20 %, а по недавней оценке одной из компаний, 150 из 400 ее серверов работали только на 3 % своей мощности. Экономия места в стойке Использование виртуализации для консолидации нагрузки этих компьютеров экономит место в стойке и снижает требования к питанию и охлаждению серверной комнаты или дата-центра. Два слушателя одного из последних курсов, которые управляли вычислительной структурой крупного британского университета, сообщили о соотношении 25 к 1 – они заменили 100 старых серверов всего четырьмя (предположительно более новыми и мощными) компьютерами. Это неплохо с экологической точки зрения, поскольку выбросы сажи в IT-индустрии примерно равны тому же показателю в авиационной промышленности (около 2 %). И, конечно, виртуализация – сердце того на первый взгляд бесконечного набора быстро предоставляемых и самообслуживающих ресурсов, которые мы называем «облаком». В Red Hat’s Enterprise Virtualisation for Desktops используется виртуализация серверной комнаты (KVM и Qemu) для размещения виртуальных рабочих столов (по сути, системы Red Hat Linux и Windows). Пользователи сидят за «тонкими клиентами» (видимо, ПК измененного назначения) и получают доступ к рабочим столам через SPICE (http://spicespace.org), современную технологию доступа к удаленному рабочему столу, которая (в отличие от более старых технологий управления удаленным рабочим столом, типа RDP) создает у пользователя реальную видимость пребывания за тем компьютером, где запущен рабочий стол. Виртуализация дала толчок развитию технологии так называемых виртуальных устройств [virtual appliances] – заранее создаваемых образов ВМ, настроенных на решение конкретных задач. Предположим, вы хотите попробовать Magento для создания электронного магазина. Можно либо установить и настроить его вручную (вместе с Apache, MySQL, PHP, phpMyAdmin и другими необходимыми дополнениями), либо запустить устройство, в котором все это установлено, настроено и готово к работе. На сайте VMware (www.vmware.com/appliances) есть более 1800 таких устройств, включая наборы открытого ПО, такие как SugarCRM, Drupal, Alfresco, Joomla! и многие другие. Их, как и необходимый для их запуска проигрыватель VMware, можно загрузить бесплатно. 173274.png Bitnami – крупный поставщик образов в библиотеку виртуальных устройств VMware. На его сайте (bitnami.org) находятся почти 30 «стеков приложений» и 11 «инфраструктурных стеков» для установки в ОС Linux в виде образов ВМ или для запуска на облаке EC2 в виде образов Amazon (Amazon Machine Image – AMI). 173276.png На сайте Turnkey Linux (www.turnkeylinux.org) находится около 45 устройств на основе Ubuntu 10.04 (текущая версия LTS). Каждое из них можно загрузить в виде образа ВМ или в виде ISO-образа, устанавливаемого на «пустую» ВМ (или – да, на чистый компьютер). Можно запускать устройства и прямо на облаке Amazon EC2. 173278.png На сайте Jumpbox (www.jumpbox.com) также находится около 60 устройств в форматах, пригодных для множества программ виртуализации, включая VMware, Xen, Parallels, Hyper-V от Microsoft и VirtualBox от Sun. Многие устройства также пригодны для развертывания на облаке Amazon EC2. Этот сервис доступен по подписке с фиксированной ежемесячной оплатой, но есть бесплатный тестовый период в 15 дней. Если вы хотите получить более самостоятельный (и с большим уклоном в Linux) опыт виртуализации, попробуйте установить KVM – полноценное решение для виртуализации в Linux на платформе x86. Ему необходимы расширения процессора для виртуализации (Intel VT или AMD-V – см. врезку), и оно состоит из загружаемого модуля ядра, kvm.ko, и процессорного модуля, kvm-intel.ko или kvm-amd.ko. Для эмуляции остальных устройств, таких как сетевые карты, диски и графические адаптеры, используется KVM в сочетании с Qemu (произносится «ки-мью»). Также понадобится установить libvirt и некоторые пользовательские утилиты управления, такие как virsh (для работы с командной строки) или virt-manager (графическая утилита). Обладатели предыдущих номеров Linux Format могут найти мое подробное руководство по этой теме в LXF125. 173282.png 173283.png 173155.png Гипервизор типа 2 запускается поверх главной OС, предоставляя виртуальные устройства, на которые можно устанавливать гостевые ОС. Главная операционная система Слой виртуализации Сервисы и приложения Гостевая операционная система Виртуальные устройства Физические устройства Сервисы и приложения Гостевая операционная система Виртуальные устройства LXF151.sysadmin.hypervisor.jpg LXF151.sysadmin.hypervisor.jpg LXF151.sysadmin.hypervisor.jpg LXF151.sysadmin.hypervisor.jpg LXF151.sysadmin.hypervisor.jpg LXF151.sysadmin.hypervisor.jpg Краткая история виртуализации Концепция виртуализации не нова – первым промышленным компьютером, поддерживавшим полноценную виртуализацию, был мэйнфрейм IBM System/360-67, введенный в эксплуатацию в 1967 году. Производители Unix, такие как Sun и HP, продавали виртуализированные системы в конце девяностых – но только для серверов высокого класса (т. е. очень дорогих). Персональные компьютеры поддерживали виртуальную память (создавая для каждого процесса иллюзию, что адресное пространство принадлежит ему) с процессора 80386, который появился в 1986 году. Именно эта разработка прежде всего и вдохновила Линуса Торвальдса на написание Linux. VMware, крупный игрок на рынке виртуализации ПК, впервые выпустила VMware Workstation в 1999 году. Но, пожалуй, только с 2006 года или около того персональные компьютеры стали достаточно мощными, чтобы виртуализация работала действительно быстро. В частности, примерно тогда Intel и AMD анонсировали расширения архитектуры процессоров x86, которые сделали полную виртуализацию возможной и эффективной. LXF151.sysadmin.vmware_screenshot.jpg 171317.png Часть моей коллекции образов ВМ на VMware Workstation. Вы также видите окно для изменения аппаратуры ВМ. LXF151.sysadmin.turnkey_stacks.jpg А у меня это заработает? На всех современных серверах должны стоять процессоры с поддержкой виртуализации, но процессоры некоторых дешевых ноутбуков могут ее и не поддерживать. Простой способ узнать, поддерживает ли ее ваш процессор – команда $ egrep ‘vmx|svm’ /proc/cpuinfo Если в списке флагов процессора есть vmx или svm, то у вас есть поддержка виртуализации Intel или AMD соответственно. Но учтите, что даже если процессор ее поддерживает, ее нужно включить в BIOS. (В Ubuntu есть небольшой скрипт kvm-ok, который это проверяет.) При выборе нового ноутбука проверьте код типа процессора и (для Intel) найдите его в списке на сайте http://ark.intel.com/vtlist.aspx. О наличии аналогичного списка для AMD у нас сведений нет. 173183.png На сайте Turnkey Linux есть примеры преднастроенных виртуальных устройств. Похожие варианты также есть на Bitnami и Jumpbox.

Персональные инструменты
купить
подписаться
Яндекс.Метрика