- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF125:История успеха
Материал из Linuxformat.
- Linux на РЖД
Содержание |
Люкс под Linux'ом
- Если вам случится путешествовать из Петербурга в Москву на комфортабельном поезде, знайте: не в последнюю очередь вы обязаны этому Linux. Олег Дмитриев расскажет подробности.
«Александр Невский» задумывался как туристический поезд, гостиница на колесах. Это очень большой состав: 18 вагонов, с собственной дизель-электростанцией, столовой, ресторанами и даже прачечной! Только для персонала отведено два вагона.
«Александра Невского» собирали на трех заводах: в Москве, Санкт-Петербурге и Воронеже. В период обкатки и как туристический состав он ходил в Астрахань, Монголию и Китай. Сегодня это поезд повышенной комфортности сообщением Москва–Санкт-Петербург. Изредка ходит в Хельсинки.
Cотрудничество компании «ЖелДорСервис», в отделе информационных систем которой я работаю, с Российскими железными дорогами (РЖД) ведет свою историю с начала 2000-х годов. Тогда на поездах «ЭР200» и «Аврора» были установлены первые медиа-системы и системы видеонаблюдения, реализованные на оборудовании финского концерна Mitron OY (тогда он назывался Instavision Solution). Примечательно, что этим же концерном (и даже на том же заводе в городе Тампере) делалась НАТО-вская авионика. Оборудование Mitron использует собственные протоколы передачи данных, что впоследствии подтолкнуло нас к переходу на Linux.
От Mitron к «Инбере»
Первые медиа-системы были простейшими. В каждый вагон монтировался некий источник сигнала (начинали еще с VHS-магнитофонов), который транслировался пассажирам. Это были аналоговые, нецентрализованные решения; все смотрели и слушали одно и то же, без возможности выбора. На вагон транслировались один видео- и два аудиопотока. Такая схема была принята как стандартная, и по ней были оснащены многие другие поезда.
Переход на Linux произошел после проекта «Red Arrow» (Красная Стрела, модернизация 2004–2005 гг). На составе была развернута полноценная IP-сеть для системы видеонаблюдения и установлена новая система с централизованной раздачей видеосигнала. Это был первый поездной видеосервер, транслирующий сигнал на весь состав. Мы использовали оборудование того же финского концерна Mitron; соответственно, видеосистема работала по своим протоколам (аналог RS-485).
После того, как стало ясно, что IP-сети прекрасно работают в «боевых условиях», было решено отказаться от дорогостоящего финского оборудования и перейти на них и Linux-системы. Linux был выбран не столько из-за цены, сколько из-за надежности и большей гибкости в настройке.
Нашим следующим Linux-проектом, после «Красной Стрелы», стал «Александр Невский». Это уникальный состав – действительно необычный поезд, на котором были реализованы все наши последние наработки. Появились доступ в Интернет, спутниковое телевидение, внутренние web-ресурсы... А главное – в отличие от ранних систем, появился выбор: пассажир мог сам решать, что смотреть, слушать, делать...
В общей сложности, на состав установили 13 серверов, 80 тонких клиентов, две спутниковые тарелки и кучу сетевого оборудования – провели 100-Мбит-сеть на 15 вагонов. Все это дело три раза в неделю движется между Москвой и Санкт-Петербургом со скоростью 200 км/ч и неплохо работает. Так появилась первая бортовая Linux-система – «Инбера», используемая с сентября 2005 года. И сегодня я хочу рассказать о ней в подробностях.
По вагонам
В целом, «Инбера» – это не так уж и сложно. В пассажирских купе сейчас установлены в общей сложности 58 (от 1 до 4 в вагоне, по количеству купе) тонких клиентов CI852C (1 ГГц CPU, 512 МБ ОЗУ). В каждом купе, помимо терминала, есть розетка RJ-45, то есть можно подключить свой ноутбук и работать в Интернете. Купейный тонкий клиент на самом деле не такой уж и тонкий... Linux (мы используем Gentoo) стартует локально с Flash-накопителя и, загрузившись, «подтягивает» все, что нужно, с сервера. Пользователь работает с системой через web-интерфейс: изначально на базе Firefox 1.5, сейчас – на основе Firefox 2.0.0.20. Через него пользователь получает доступ к ресурсам: музыке, кино, спутниковому телевидению...
Для просмотра видео применяется подключаемый модуль VLC для Mozilla, хотя с ним не обошлось без проблем. Если нужно просто транслировать/принимать видеопоток, VLC – один из лучших. Но когда требуется организовать web-интерфейс управления потоком... Кнопки Play и Stop работают нормально, а вот Pause держит паузу недолго – настолько, что пассажир не успевает вернуться из туалета... Может, оно и смешно, а для нас это (наряду с перемоткой) было причиной одного из обновлений.
В каждом вагоне есть свой локальный сервер (P4 3,2 ГГц, 1 ГБ ОЗУ). Такая избыточность нужна на случай падения сети и при расцеплении вагонов – часть сервисов останется доступной. На серверах мы также используем Gentoo – его выбрал первый разработчик системы, Александр Тягов. Кстати, нынешняя команда такова: Николай Лысенко, Вадим Краснобаев, Игорь Матросов, Сергей Горький и я, Олег Дмитриев.
С вагонного сервера клиенты получают настройки: DHCP, DNS, NTP и так далее, но основная его задача – это web. Мы используем Apache 1.3 в связке с PHP 5.2 и VLC 1.0.1 для видео. Создать аудиорешение на базе VLC по ряду причин не вышло, и мы выбрали Icecast Streaming Server 2.3.2. Такие серверы используют и для радиовещания в Интернете. Кроме того, на вагонных серверах хранятся сами медиа-файлы: MP3, Ogg, VOB. Мы называем их «консервами» – так уж повелось.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов. Так, адрес, входящий в диапазон 224.0.0.0–239.255.255.255 (класс D), считается групповым multicast-адресом, и обрабатывается маршрутизаторами особым образом. Если в пакете в качестве адреса назначения указан адрес класса D, то его должны получить все узлы, которым присвоен данный адрес. Эти узлы образуют multicast-группу. Один и тот же узел может входить в несколько multicast-групп. При этом узел (пользователь) сам определяет, в какие группы он входит, и оповещает об этом маршрутизатор.
Основное преимущество передачи данных по технологии Multicast в том, что при подключении к группе новых узлов не увеличивается нагрузка на канал. Например, наш видео-сервер транслирует в сеть поток со скоростью 2 Мбит/сек. В обычной (Unicast) среде число потоков равнялось бы числу узлов, что при 50 клиентах полностью исчерпало бы ресурсы сети. А их 80, плюс Интернет, плюс видеонаблюдение... В Multicast-среде между сервером и активным маршрутизатором нужна фиксированная полоса в 2 Мбит/сек, что и позволяет добиться хорошего качества, не загружая при этом сеть.
Головной сервер
Головной сервер находится в штабном вагоне. В радио-рубке установлена небольшая стойка 19", в которую вмонтированы сам сервер (P4 3,2 ГГц, 1 ГБ ОЗУ) и два ресивера (OpenBox CI7200PVR). Что характерно, ресиверы OpenBox тоже используют операционную систему Linux!
Штабной сервер управляется Debian Etch; его основная задача – шлюз в Интернет. Единственный способ обеспечить доступ в Интернет на всем протяжении пути следования поезда – это спутник. На крыше вагона установлены две спутниковые тарелки TracVision C3: одна для Интернета, другая – для спутникового телевидения. Тарелки специализированные, ориентированные на использование с воды. У них есть своя система корректировки, и если поезд меняет направление, антенна тоже поворачивается, как бы постоянно держа спутник на прицеле. Спутниковый Интернет односторонний (асинхронный), то есть тарелка только принимает сигнал. Для запросов используется наземный шлюз, доступный через GPRS-канал. Мы используем промышленные GPRS-модемы Siemens MC75.
В последнее время наша команда столкнулись с проблемой нехватки уровня сигнала со спутника. В дороге она пока не решена, а в черте города выручает Yota и проект Madwimax, обеспечивающий работу Yota-модемов в Linux. Сейчас мы тестируем промышленное решение на базе WiMax – устройство MAX-306HW2. Оно состоит из двух компонентов – мощной внешней антенны и Wi-Fi маршрутизатора.
Коротко коснусь спутникового телевидения. Чтобы сохранить полосу пропускания, для трансляции спутниковых каналов в сеть используется технология группового вещания (multicast, см. врезку). Делается это аппаратно, с ресиверов OpenBox. На данный момент, мы транслируем два потока: обычно это новости и спортивный канал.
За централизованную раздачу сигнала пришлось заплатить страшную цену... Появились «тонкие места» – межвагонные соединения. Они рвутся, до них не так просто добраться, они сбоят после мойки, а что самое неприятное – их много. Справа и слева по бортам «Александра Невского» проложен кабель, и если рвется рабочая сторона, система автоматически переключается на резервную. Реализовано это на оборудовании фирмы Harting: в 2005 году, на момент построения сети, они как раз выпустили новый коммутатор с функцией переключения портов при обрыве линии. Проблема была в том, что он не поддерживал multicast. Мы собирались уже делать маршрутизацию на сервере, но разработчики (специально для нас!) выпустили новую версию прошивки. Разъемы и провода у Harting свои – на них выполнена магистраль, а разводка по вагонам осуществляется обычной витой парой.
На будущее
Все течет, все меняется – «Инбера» не исключение. В ближайшее время планируем перейти на сетевую загрузку клиентов, чтоб они были немного потоньше. На самом деле, это из-за проблем с электричеством: «флэшки» плохо переносят перепады напряжения. Возможно, будет реализована IP-телефония на базе протокола SIP. Но все это будет завтра, а пока «Инбера» на «Александре Невском» остается просто самой крупной, первой и единственной в своем классе бортовой информационная системой на РЖД.