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

LXF150:Sysadmin

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

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

Эзотерическое системное администрирование из причудливых заворотов кишок серверной


Как стать сисадмином

Восемь простых шагов к вершинам мастерства.

Недавно слушатель курса «Введение в Linux» спросил меня, как получить знания системного администратора Linux. Он имел опыт работы в Windows и изучал основы командной строки Linux. Конечно, я рекомендовал ему курс «Администратор Linux», но в его бюджете этот курс был не предусмотрен, и я сформулировал несколько советов...

  • Стиснув зубы, освойтесь в командной строке и редактировании файлов настройки вручную. Изучите grep и другие классические фильтры, чтобы пользоваться ими без долгих раздумий.
  • Перестаньте жаловаться на Vi и изучите его. Никогда не копируйте файлы настройки на флэшку, чтобы открыть их в Блокноте.
  • Читайте man-страницы. Часто они непонятны (а порой ошибочны), но все равно читайте.
  • Научитесь набирать. Бежать на курсы машинописи или набирать 60 слов в минуту не надо, но ради Бога, возвысьтесь над печатью одним пальцем.
  • Установите VMWare (или любой другой гипервизор), запустите несколько виртуальных машин с Linux и играйте, играйте. Создайте сайт с Apache, почтовый сервер с Postfix, DNS-сервер с Bind. Создайте брандмауэр на одной ВМ и исследуйте его с помощью Nmap на другой. Ломайте. Находите ошибки и заставляйте работать снова. Затем повторите все это в другом дистрибутиве Linux.
  • Купите Unix and Linux System Administration Handbook [Справочник по системному администрированию Unix и Linux] Немет, Снайдера, Хайна и Уэйли [Nemeth, Snyder, Hein, and Whaley], 4-е издание. По мне, это лучшая книга на данную тему.
  • Помните, что поддержка безопасности системы – постоянный процесс, а не разовая акция, и уж точно не спохватывание потом.
  • Не бойтесь просить помощи у сообщества, но учитесь спрашивать правильно. Не требуйте помощи и не беситесь, если что-то с виду не работает. И всегда благодарите.


Вопрос времени

Как в отсутствие руки и наручных часов компьютер узнает, который час? И почему это важно?

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

Время в Linux, а до него – в Unix, измеряется в секундах с момента, называемого «эпохой» – первого мгновения 1970 года по Всемирному скоординированному времени (UTC).

Изначально в Unix это значение хранилось в 32-битном целом числе со знаком (тип typdef под названием time_t), и вычисления покажут вам, что оно охватывает даты с пятницы 13 декабря 1901 года до вторника 19 января 2038 года. После этого дня оно вернется обратно в 1901 год.

Оказывается, в 32-битных ядрах Linux time_t осталось 32-битным. Я написал об этом Линусу Торвальдсу [Linus Torvalds], и он любезно ответил: «Мы полагаем, что через 25+ лет это уже никого не взволнует. Поэтому мы даже не вникали в создание для них расширенных системных вызовов. Если через 15 лет люди все еще будут пользоваться 32-битными ядрами x86, мы можем решить, что десять-двадцать лет – уже достаточно близкий срок, чтобы заняться этим, и сделаем какое-нибудь 64-битное расширение time_t. Хотя я сильно сомневаюсь, что это произойдет».

В 64-битном ядре Linux time_t – 64-битный тип, и он способен представлять даты... ГОРАЗДО более поздние, чем те, о которых людям стоит беспокоиться.

Текущее значение времени (секунды с момента «эпохи») легко получить командой

$ date +%s

и когда я это пишу, оно равно 1310239755. Конечно, пользы от него немного – если кто-то остановит вас на улице и спросит, который час, вы вряд ли ответите: «Один миллиард триста десять миллионов двести тридцать девять тысяч семьсот пятьдесят пять».

Минуточку...

Это приводит меня к сложному вопросу о том, как записывать моменты времени в удобной для человека форме. Здесь есть традиционные сложности – високосные годы, неодинаковые длины месяцев («Тридцать дней в сентябре…»), часовые пояса, летнее время, местные культурные нормы и поправки к календарю, сделанные римским папой Григорием XIII в 1752 году. (Попробуйте набрать cal 1752 и взглянуть на сентябрь.)

На компьютере с Linux часов на самом деле двое – аппаратные и программные. Аппаратные часы – крохотная электросхема на материнской плате. Они питаются от батарейки и должны тикать независимо от типа операционной системы и даже от включения компьютера.

Программными часами управляет ядро Linux. При загрузке системы показания программных часов первоначально задаются аппаратными, но затем аппаратные часы игнорируются. Например, при выводе времени и даты командой date опрашиваются программные часы. При выключении системы программные часы снова синхронизируются с аппаратными. (Подробности см. на man-странице hwclock.)

Предоставленные самим себе, аппаратные часы компьютера будут «уплывать» – пусть и на несколько секунд в день, но разница постепенно накапливается. Потеря синхронизации часов может вызывать проблемы: временные отметки файлов журналов на нескольких компьютерах рассогласовываются, запутывая проверки; временные отметки файлов на файловых серверах могут угодить в будущее по отношению к клиенту (сбивая с толку множество программ вроде make), а протоколы аутентификации, применяющие зашифрованные временные отметки, начнут выдавать ошибки.

Лучший метод обеспечения синхронизации часов компьютера – протокол сетевого времени (Network Time Protocol – NTP), реализуемый демоном NTP (ntpd). Этот умный протокол, который учитывает задержки и «дрожание», присущие пакетам, передаваемым через Интернет, и синхронизирует часы с точностью до 10 мс. Пользоваться демоном очень просто – в его файле настройки (вероятно, /etc/ntp.conf) надо указать несколько серверов времени, желательно не меньше трех.

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

Цитирую ее man-страницу: «Важно учесть, что ntpdate с притянутыми скриптами Cron не заменяет демон NTP, который добивается максимальной точности и надежности благодаря сложным алгоритмам».


Программы как сервисы

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

Похоже, я становлюсь «проповедником облаков». На последних учебных курсах я пел хвалу облакам и обсуждал их риски с довольно скептической аудиторией. На страницах этого журнала я не раз писал об облачных вычислениях. Я показывал, как развернуть экземпляры компьютеров в облаке Amazon Web Services (LXF127), как пользоваться сервисом облачного сервиса вроде Rackspace (LXF142) и даже как создать свое личное облако с помощью Eucalyptus (LXF148).

Все это примеры того, что в промышленности называется «Инфраструктура как сервис» (Infrastructure as a Service – IaaS), и это лишь одна грань облачных вычислений. Сегодня я хочу поговорить о другом аспекте облачных вычислений – «Программа как сервис» (Software as a Service – SaaS).

Процитирую сайт SaaS Directory (http://www.saasdir.co.uk/guides): «Приложение как сервис (SaaS) – приложение, размещаемое на удаленном сервере и доступное через Интернет. Оно обычно относится к бизнес-программам и в бизнесе считается малозатратным способом получить специализированное ПО, с которым могут работать несколько пользователей. SaaS снимает с потребителя бремя обслуживания, текущего действия и поддержки ПО, тем самым снижая его затраты».

Один из самых старых и известных подобных сервисов – электронная почта в Интернете, например, Gmail. Подобные почтовые сервисы демонстрируют ключевые возможности многих SaaS-продуктов:

  • У них есть web-интерфейс (на основе браузера).
  • Доступ к ним возможен через браузер отовсюду, где есть компьютер (или планшет, или смартфон) и интернет-соединение. Установка дополнительного ПО не требуется.
  • Данные для приложения (в данном случае, ваши письма) хранятся на облаке, а не на вашем компьютере.
  • Сервисы бесплатны для мелкомасштабного личного пользования. Нет «платежного барьера», лишь преодолев который, вы получите доступ к сервису.

Однако электронная почта с web-интерфейсом – лишь верхушка огромного айсберга SaaS. Если у вас есть полчаса, зайдите в свою учетную запись Gmail (а если у вас таковой нет, поступитесь своим самолюбием и заведите ее) и исследуйте другие программы, к которым она дает доступ. Google Docs (где я и пишу этот текст) предоставляют Google-эквивалент текстового редактора, программы для работы с презентациями и электронных таблиц, которые мы обычно берем из OpenOffice.org (или Microsoft Word/PowerPoint/Excel). Возможности редактирования не так богаты, как в Office или Word, но особыми сверхвозможностями я и в тех не пользуюсь. Календарь Google – обычный календарь и программа для управления событиями. Затем, конечно, Picasa – программа редактирования и размещения фотографий в Web.

Эффектное SaaS-приложение от Google – Google Translate. Здесь можно набрать текст на любом из почти 60 языков, и он будет переведен на любой из остальных 59. Я не настолько силен в иностранных языках, чтобы судить о качестве результата, но выглядит сервис впечатляюще.

Большой плюс Google Docs (и SaaS в целом) в том, что они облегчают совместную работу. С любым владельцем учетной записи в Google легко открыть общий доступ к документу – и с правами редактирования, и в режиме просмотра. Отпадают пересылки туда-сюда по электронной почте и проверки, что у всех правильная версия – версия теперь только одна.

Существуют буквально сотни других поставщиков приложений SaaS, предоставляющих огромный набор программ, способных обеспечить работу целой компании. Опять же зайдите на www.saasdir.co.uk и посмотрите на список. Существуют программы для ведения счетов, бухгалтерского учета, управления взаимодействием с клиентами (CRM – Customer Relation Management), управления кадрами (наем, обучение, оценка производительности) и многого другого.

Например, зайдите на zoho.com. Здесь имеется набор программ, похожих на программы Google: календари, планировщики, хранилища документов и почты и огромный набор более конкретных бизнес-приложений. Опять же, все это бесплатно для начинающих, и платить нужно только за расширение.

Что в хранилище?

«Хранилище как сервис» пока не официальный термин в облачных вычислениях, хотя его стоило бы сделать таковым. Существует множество сервисов, предлагающих место для хранения файлов в облаке.

  • Хорошо известен Dropbox (http://dropbox.com). Он доступен для бесплатного использования (до 2 ГБ места), далее $9,99 в месяц за 50 ГБ и т. д. Основное назначение Dropbox – синхронизация файловых систем между различными компьютерами – настольным, ноутбуком, телефоном и т. д.
  • Mozy (http://mozy.co.uk) – другое популярное хранилище, но с акцентом на резервное копирование, а не синхронизацию. Здесь предлагается шифрование файлов пользователя. Mozy принадлежит компании EMC, поэтому должно хорошо справляться со своими задачами.
  • Пользователям Ubuntu, возможно, знаком Ubuntu One (https://one.ubuntu.com). Он предлагает бесплатно 5 ГБ дискового пространства. Жестко нацеленный на потребительский рынок Ubuntu One позволяет хранить свою музыку и закачивать ее в смартфон.
  • S3 (simple storage service – простой сервис хранилища) от Amazon – более «инфраструктурный» сервис по сравнению с сервисами, ориентированными на конечного пользователя, как Dropbox или Mozy. S3 предлагает место в «корзинах» с репликацией, «обеспечивающей 99,999999999 % непрерывность доступа и 99,99 % доступность объектов в течение года». То есть каждый год можно потерять до одного объекта из миллиарда и лишиться доступа к своим объектам не более чем на час. Бесплатно предоставляется 5 ГБ, а за деньги – до 5000 ТБ (см. aws.amazon.com/s3). Также оплачивается трафик, который бывает трудно оценить.

Немножко — бесплатно

В мире открытого ПО мы привыкли получать богатый функционал бесплатно – OpenOffice.org, GIMP, Audacity и сотни других приложений. Конечно, это сильно отличается от модели, которая кормит традиционных производителей ПО, когда за все нужно платить вперед: нет денег – нет программы. Мир SaaS предлагает модель оплаты, которая лежит где-то посередине между свободным ПО и традиционными моделями. Мелкомасштабное использование часто бесплатно; вы платите только тогда, когда хотите увеличить количество пользователей, объем хранилища, повысить скорость выполнения транзакций и т. д.

Возможностей бесплатной версии вполне хватает, чтобы понять, подходит ли она вам. Небольшим компаниям их может хватить даже для постоянной работы. Другие сервисы (например, Google Apps для бизнес-использования) предлагают бесплатные версии на время ознакомления.

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

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

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

Большинство облачных провайдеров очень ответственно подходят к безопасности, и во многих случаях их системы защищены лучше, чем в дата-центрах, и явно лучше, чем пара web-серверов в офисе, обслуживаемых дилетантом. Например, web-сервисы Amazon Web Services сертифицированы PCI DSS Level 1, ISO 27001 и SAS 70 Type (сообщаю для тех, кто, в отличие от меня, знает, что это такое).

Есть и другие причины, по которым облачные вычисления на самом деле могут повысить, а не снизить безопасность. Есть новое поколение компьютеров (например, Chromebook) – чисто облачных устройств, в которых данные не хранятся локально и на которые нельзя устанавливать приложения. Такой компьютер (предположительно) не заразишь вирусами, и если его украдут, то воры не заполучат никакие важные локальные данные.

Вторая по значимости причина беспокойства после конфиденциальности – получение доступа. Существует риск краткосрочной недоступности данных (хотя в сервисных соглашениях облачных провайдерах указывается доступность в 99,95 % – это всего четыре часа простоя в год). Конечно, в сельской местности отсутствие широкополосного доступа или 3G-сигнала сводит доступность данных к нулю. Затем, есть и моя любимая мозоль – ненадежное интернет-соединение в большинстве отелей.


Власть — народу

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

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

Боссам, воротящим нос от облачных технологий, скорее всего придется принять их по тем же причинам, по которым предыдущие боссы в конце концов стали покупать электричество у электростанций: это дешевле.

Если вы хотите поближе познакомиться с облачными вычислениями, я от души советую вам «Краткое руководство по облачным вычислениям» [A Brief Guide to Cloud Computing] Кристофера Барнетта [Christopher Barnatt]. Книга написана понятным, не технарским языком, и ее можно прочесть за день. Она дает прекрасное представление об облачных вычислениях и направлении их развития.

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