...
...
...

за кулисами Linux Kernel Archives

Проект Linux Kernel Archives, наверное, лучше всего известен своим веб-сайтом, расположенным по адресу kernel.org. Здесь всегда можно найти самый свежий релиз ядра, патчи производства самых известных Linux-хакеров, а также зеркала других популярных свободных и open-source-проектов. Множество людей со всего мира с удовольствием обращаются к этому ресурсу, не сильно задумываясь о том, сколько усилий было положено на его создание и поддержку.

В одном из недавних сообщений Linux Kernel Mailing List Питер Энвин немного рассказал об изменениях, произошедших в инфраструктуре, обслуживающей kernel.org.

Hewlett-Packard проспонсировала приобретение новых 4-процессорных серверов (на основе Opteron), каждый из которых обладает 24 гигабайтами оперативной памяти и 10 терабайтами дискового пространства. Компания Internet System Consortium Inc. предоставила доступ к сети – две независимых площадки с гигабитным подключением. Это PAIX в Пало-Альто и e200paul в Сан-Франциско. Питер Энвин, Натан Ларедо и Крис Кук в свою очередь, как всегда, предоставили проекту собственное время и знания. KernelTrap побеседовал с Питером Энвином на темы, связанные с историей Linux Kernel Archives.

начало

Питер Энвин работает с Linux Kernel Archives практически с самого начала существования этого проекта. Когда Линус Торвальдс покупал свой первый компьютер, на котором он и начинал создавать Linux, в одиночку потянуть такую покупку сразу он не мог. Кстати говоря, для своего времени это была мощная тачка: PC с 4Mb RAM и 33 MGz процессором. В результате он заплатил часть из необходимых для этого $3500 сразу, а оставшееся должен был выплатить за три года. Где-то через год, когда ядро Linux начало постепенно становиться на ноги и сформировалось первое сообщество пользователей, Питер организовал онлайновую кампанию по сбору средств. Собрав почти $3000, удалось полностью погасить кредит Линуса. После того, как Линус окончил Хельсинкский университет, Питер пригласил его в Калифорнию поработать на Transmeta, где сам Питер уже был благополучно трудоустроен. В результате это событие стало датой рождения Linux Kernel Archives. «Я начал заниматься kernel.org с момента его возникновения в 1997-м» - поясняет Питер.

Вначале архив проживал на обычном PC, который работал под Linux и был подключен к интернету посредством трансметовского T1. Данная машина служила Линусу локальным сервером. Доменное имя «kernel.org» было выбрано, потому что к этому времени все имена типа «linux.домен» уже были заняты. Сразу было решено не использовать домен Transmeta, чтобы не создавать ложное впечатление о том, что Linux якобы принадлежит этой компании. «Kernel.org был чем-то вроде запасного варианта, которым мы, в итоге, и воспользовались. Этот выбор себя вполне оправдал, поскольку сегодня это имя уже сильно срослось с проектом» - рассказывает Питер.

второе поколение

Исходный PC был заменен в 1998-м машиной с двумя PII-350, которую предоставила VA Linux Systems (теперь – VA Software). В это же время компания Globix предоставила площадку для сервера и 100 мегабитный линк в центре обработки данных в Санта Клара. Через несколько лет сайт проекта стал уверенно потреблять такое количество трафика, что, как выразился Питер, отношения явно стали натянутыми. В 2000-м, когда для
телекоммуникационной индустрии настали тяжелые деньки, Globix решила затянуть пояса потуже. Как результат, квартирантов-линуксоидов убедительно попросили убираться на все четыре стороны.

третье поколение

В этот неприятный период с нашими героями связался Пол Викси из ISC Incorporated и предложил место на принадлежащей ISC площадке в PAIX (Пало- Альто). «Для нас это была настоящая мечта», говорит Питер, «Мы могли разделить 100-mbit канал всего с несколькими бэкбонами. Я связался по e- mail с Полом Викси и попытался разузнать, что именно ISC сможет предложить для kernel.org. Пол продемонстрировал впечатляющий список проектов, которым они уже предоставили хостинг, и пояснил, что ISC, являясь общественной организацией, часто занимается поддержкой подобных проектов. Поскольку деятельность Linux Kernel Archives близка к задачам этой организации, мы способны помочь друг другу в решении собственных задач». Как говорил потом Пол, «С Питером очень приятно работать, а kernel.org стал одним из самых крупных проектов, с которыми мы сотрудничаем. Мы рады, что наша компания ассоциируется с этим проектом. ISC полагает, что такая деятельность оказывает влияние на всю индустрию». Пол Викси также отдельно поблагодарил своего друга Дэрила Джонса (SMRN), который оказывает финансовую поддержку kernel.org в Сан-Франциско.

В 2001-м Hewlett-Packard впервые помогла проекту Linux Kernel Archives техникой. Это был ProLiant DL380G2 (Dual Pentium III 1.1 GHz). «У этой машины было шесть гигабайт RAM и терабайт на дисках. Нам тогда такая мощность казалось избыточной. Однако ISC вскоре расширила канал для kernel.org до гигабита, то есть это было больше, чем сервер мог реально обслужить. После приличной работы по настройке системы мы смогли освоить 600 мегабит. Это ограничение обусловлено тем, что для большего количества данных 6 гигабайт памяти уже было недостаточно, поэтому приходилось задействовать диски, производительность которых и ограничивала потолок производительности всей системы в целом» - рассказал Питер.

Обслуживание HTTP и FTP не требовало больших процессорных ресурсов, однако со временем объемы rsync-трафика, с которым работал сервер, продолжали расти, а такой трафик чувствителен именно к процессору. «Мы постепенно приближались к тому моменту, когда нам уже хватало канала, но процессор начинал захлебываться» - пояснил Питер. Средняя загрузка процессора росла, периодами достигая полной.

четвертое поколение

Становилось ясно, что без нового апгрейда проекту придется туго. Питер начал обдумывать подготовку просьбы к Hewlet-Packard о новом оборудовании. Однако он не успел предпринять эти шаги – Hewlett-Packard его опередила. С Питером связались представители корпорации. Их предложения можно вкратце передать примерно так «Парни, мы тут заметили, что у вас в последнее время наклевываются проблемы в работе проекта, скажите, что вам надо для полного счастья?». Питер попросил о технической поддержке.

За последующие две недели был составлен список оборудования, которое Питер хотел бы видеть в распоряжении kernel.org и вскоре начались поставки. Питер по этому поводу заметил: «Hewlett-Packard обслужила нас по самому высшему разряду. Они были просто великолепны!».

Мэтт Таггард, представляющий лабораторию R&D из состава хьюллет-паккардовской Open Source & Linux Organization, отмечает, что HP – большая корпорация и помощь для kernel.org приходила от различных ее подразделений. «В Hewlett-Packard достаточное количество людей, понимающих роль kernel.org и ту пользу – как прямую, так и косвенную, которую этот проект приносит клиентам корпорации. В этот раз поддержка пришла от нашей лаборатории (Hewlett-Packard Open Source and Linux Operation R&D Lab), но ранее она оказывалась и другими подразделениями, например Industry Standard Server Division (это те парни, которые делают ProLiant’ы). IT-подразделения Hewlett-Packard тоже используют Linux и часто прибегают к услугам kernel.org, поэтому поддержка проекта для них более чем полезна».

Когда речь зашла о причинах, по которым Hewlett-Packard помогает kernel.org, Мэтт пояснил, что когда у компании есть такая возможность, она всегда старается поддерживать свободные и open-source проекты. Объясняется это просто. Возьмем, к примеру, ситуацию, когда компании надо быстро распространить какое-либо исправление для программного обеспечения к своему оборудованию. Для этого проще работать на уровне kernel.org, а не пытаться распространять исправления самостоятельно, поскольку не факт, что получится охватить всех клиентов. Предоставить kernel.org нужное оборудование в данном случае выгоднее, чем прилагать немалые усилия по созданию собственной системы.

У Питера было два главных требования к новому оборудованию: 64-разрядные процессоры и два одинаковых сервера для удобства их обслуживания и исключения простоев. Новые серверы, которые предоставила Hewlett-Packard – это четырехпроцессорные ProLiant DL585, оснащенные 2-ядерными Opteron, 24Gb RAM и 10Tb дискового пространства в массивах MSA-30. Новые машины, по словам Питера, способны держать практически все часто запрашиваемые файлы в оперативной памяти – именно это было причиной, по которой он просил именно 24Gb памяти.

Один сервер проекта находится в Сан-Франциско, второй – в PAIX (Пало-Альто). Начиная с 9 апреля 2005 года, новые серверы действуют в рабочем режиме. Каждый из них способен обработать гигабитный трафик, хотя проверить это утверждение на практике пока еще не удалось. Загрузка CPU, как и ожидалось, упала до весьма малых значений.

Каждый сервер размещен на собственной площадке и подключен к Интернету посредством гигабитного оптоволоконного канала. В сообщении рассылки Linux Kernel Mailing List Питер подвел итог проделанной работе: «Теперь мы ожидаем от kernel.org гораздо большей производительности. Огромное спасибо Hewlett-Packard за новое оборудование и спасибо ISC за то, что они дали нам возможность учетверить занимаемое нами пространство (от 5U до 2 по 10U). Мы постараемся отработать эти авансы :)».

программное обеспечение

Серверы, обеспечивающие работу Linux Kernel Archives, всегда использовали только ядро Linux. В самом начале это было vanilla, снабженное самыми современными функциональными возможностями, которые предоставляли максимальную производительность. В последние несколько лет проект стал использовать ядра от вендоров. В настоящее время сервера работают под Fedora Core и используют ядро 2.6 от RedHat. «Все дело в обновлениях – такие ядра легче поддерживать в актуальном состоянии. Мы будем использовать такие ядра и дальше, если только они будут предлагать все критичные для нас возможности» - пояснил Питер. Linux Kernel Archives применяет ядро 2.6 начиная с 24 мая 2004 года.

Веб-страницы обслуживает Apache, обновленный до версии 2 в начале декабря 2004 года. FTP работает с помощью пакета vsftpd, который 26 мая 2004 года заменил в этой роли proftpd. «Мы не пытаемся оригинальничать, поскольку чересчур хитрые комбинации потом не так просто поддерживать» - поясняет Питер. «Единственный нестандартный момент – это noatime-монтирование файловой системы. Это означает, что при операциях чтения атрибут atime (access time) файлов не изменяется. Результат – почти вдвое сниженная нагрузка. Кроме этого, везде, где это только возможно, используется системный вызов sendfile. Он обычно значит, что мы берем некий файл и отправляем его на конкретный TCP-сокет. Это 99 с копейками процентов того, чем мы тут занимаемся, таким образом, применение sendfile для нас очень важно».

зеркала

Системой зеркал Linux Kernel Archives занимается Киз Кук. Как рассказывает Питер, данная система была создана в тот период, когда kernel.org использовал канал Transmeta, который частенько оказывался перегруженным. Несколько сайтов с хорошими каналами предложили свою помощь. В результате, система зеркал вскоре была оформлена. Каждый такой сайт соблюдает основные правила проекта, а ссылки на них предоставляет kernel.org. Как говорит Питер, «С нами работает чуть больше сотни сайтов и это число остается практически неизменным, хотя сами сайты в списке, само собой, могут меняться». Когда kernel.org использовал один сервер, в периоды его обслуживания зеркала испытывали повышенную нагрузку. В современной конфигурации ограничения по каналу и процессорной мощности сняты, что позволило Питеру заметить, что если вдруг система зеркал внезапно исчезнет, то на работе проекта это никак не отразится. С другой стороны, система зеркал весьма полезна для пользователей за пределами Северной Америки.

другие сервисы

Kernel.org предлагает и ряд дополнительных сервисов. Например, Linux Kernel Mailing List работает на сервере с именем vger. Как бы то ни было, эта машина физически никак не относится к Linux Kernel Archives. Питер поясняет, что первоначально в Финляндии существовала рассылка Linux Activist. Через некоторое время на смену этому проекту пришел Linux Kernel Mailing List, который работал с помощью Majordomo. Его администрировал Дэвид Миллер (Университет Рутгера). Когда Дэвид перешел на работу в RedHat, сервер переехал вместе с ним. Не всем понравилось, что Linux Kernel Mailing List теперь находился в домене redhat.com. Чтобы разобраться с этой ситуацией, Питер предложил: «Если людям это понравится, пусть будет vger.kernel.org – нам не трудно сделать именно так». В итоге, в то время как сам сервер физически находится у RedHat, он является частью домена kernel.org. «Мы судим по его функциональному назначению, а не по его местоположению» - поясняет Питер.

Bugzilla.kernel.org – еще один пример сервера домена kernel.org, который находится на внешней площадке. В данном случае сервер поддерживает OSDL. Питер объясняет это следующим образом: «Так вышло благодаря предложению Линуса Торвальдса и общей договоренности разработчиков ядра – мы решили включить его в домен kernel.org».

трафик

Нормальная загрузка канала kernel.org составляет порядка 150-200 мегабит в секунду. Это в периоды, когда, по выражению Питера, не происходит ничего экстраординарного. «К нашему счастью, тестовые релизы нас совершенно не касаются» - добавляет он. Данная ремарка относится к –prc и –rc ядрам, спрос на которые не оказывает влияние на работу серверов и не сказывается на требованиях к каналу.

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

«Что действительно влияет на загрузку канала, так это релиз какого-нибудь дистрибутива, зеркало которого мы держим у себя». Это, например, относится к Fedora. «Ядро – это что-то порядка нескольких десятков мегабайт, в то время, как Fedora – это несколько гигабайт».

Отвечая на вопрос о просмотрах логов доступа к серверам, Питер объяснил, что, несмотря на то, что они периодически получают подобные предложения от различных заинтересованных лиц, они никогда не предоставляют таких сведений из соображений безопасности своих пользователей. «Мы разрешаем доступ к логам только для тех людей, которые тесно участвуют в работе над Linux. Это люди, которых мы хорошо знаем». Вопрос о доступе к логам в анонимном режиме поднимался, однако сейчас это не является первоочередной задачей. «Мы это обсуждали, однако решение данной задачи в основном упирается в недостаток времени».

доска почета

В настоящее время «штат» kernel.org состоит из трех человек – все они занимаются проектом на добровольной основе в свое личное время. Это Питер Энвин, Натан Ларедо и Киз Кук. Питер работает в Orion Multisystems, в проекте же отвечает за общую архитектуру, поддержку доступа разработчиков для загрузки патчей, а также за связи с общественностью. Натан также является сотрудником Orion Multisystems, в kernel.org занимается системным и серверным ПО, а также веб-страницами. Постоянное место работы Киза – OSDL. Повседневная администраторская работа выполняется тем, кто возьмется за нее первым.
Когда Линуса Торвальдса спросили о Linux Kernel Archives, он ответил, что счастлив положиться в этой работе на команду проекта kernel.org. «Мне практически не пришлось даже пальцем о палец ударить для поддержки kernel.org, которая ведется просто великолепно. Это просто замечательно во- первых для меня – я далеко не трудоголик, - а во-вторых - для kernel.org, поскольку когда дело доходит до системного администрирования, я настоящий дилетант. Единственное, что я могу сказать, это спасибо вам, парни, за ваш труд! Спасибо Питеру и всем вовлеченным в работу людям!». Ходили разговоры о необходимости создания постоянного наемного штата, который бы занимался поддержкой kernel.org. Однако в силу различных причин этого так и не произошло. Как поясняет Питер, тогда пришлось бы искать постоянного спонсора, который бы за все это платил. Найти такого спонсора реально, однако такие поиски сами по себе требуют чересчур много времени и усилий. Есть и другие причины. По словам Питера, «Работать с Hewlett- Packard и ISC действительно приятно. На эти задачи у нас уходит не так много времени. В то же время они очень внимательны к нашим нуждам, но это внимание, тем не менее, не перерастает в навязчивость».

Официально сайт kernel.org принадлежит некоммерческой организации Kernel Dot Org Organization Inc., которая была основана в 2001 году. Тем не менее, whois сообщает, что доменное имя принадлежит Transmeta Corporation. Питер в настоящее время работает с Transmeta по вопросу перерегистрации имени. Изначально все эти события происходили еще в 2001-м, однако дело затормозилось из-за некоторых шероховатостей с Transmeta, кроме того, эта проблема не входит в число первоочередных задач проекта, что и обусловило в итоге такую задержку.

Идея некоммерческой организации возникла по той причине, что потребляемый kernel.org трафик весьма значителен и, следовательно, дорог. Как поясняет Питер, «Если мне скажут, что наш трафик стоит порядка миллиона долларов в год, то я не удивлюсь. Это внушительная сумма и если нам вдруг придется искать другого ISP, то потенциальный спонсор должен быть готов потратить такие деньги. Сейчас мы работаем с ISC и нам бы хотелось продлить наше сотрудничество как можно дольше. У нас действительно великолепные отношения».



KernelTrap.org, перевод Алексея Кутовенко.


© Сетевые решения