Идея самовосстановления компьютерных сетей отнюдь не нова. Однако именно сейчас, с появлением новых коммуникационных технологий, эти идеи приобрели новое значение.
АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Спрос - не беда
Влили воду в речку - выстроили мост,
Ожила овечка - ей пришили хвост.
(Детская песенка)
Помните школьный учебник зоологии? На одной картинке бедной ящерице отрывают хвост, а на соседней нарисована та же ящерица, у которой хвост вырос заново. Называлось это, помнится, регенерацией. Вслед за картинками шли рассуждения о том, как было бы хорошо, если бы человек тоже "научился" отращивать новый... ну, не хвост, конечно, а скажем, руку или ногу или восстанавливать нарушенную проводимость отдельных участков нервной системы.
Продолжим развивать биологическую тему. Если современную организацию сравнивать с живым организмом, то в роли нервной системы, бесспорно, выступает вычислительная сеть. И как в живом организме нарушение проводимости нервной системы может привести к полному или частичному параличу, точно так же нарушение связности вычислительной сети может привести к полному или частичному параличу организации.
Конечно, восстановить работу вычислительной сети гораздо легче, чем вылечить пораженный участок нервной системы. Надо просто выяснить, где возникла неисправность, и заменить поврежденный участок. Тем не менее отказ вычислительной сети может иметь весьма нежелательные последствия для работы организации и привести к серьезным убыткам. Как легко понять, последствия отказа тем тяжелее, чем больше времени тратится на восстановление нормальной работы сети.
МАМА, У МЕНЯ ЗДЕСЬ БОЛИ-И-И-ИТ!
Было бы очень хорошо, чтобы поиск неисправностей (а еще лучше - их устранение) производился без непосредственного вмешательства человека. Разумеется, никто не предполагает, что сетевое оборудование способно отремонтировать себя само: речь идет, как правило, просто о локализации отказавшего участка сети и переключения трафика на резервные каналы связи. Такая задача может решаться на различных уровнях стека протоколов.
Не так давно "LAN Magazine/Русское издание" уже писал о том, как осуществляются выявление отказавших участков сети и перенаправление сетевых пакетов в обход на сетевом уровне (см. статью Джима Гейера "Дороги, которые мы выбираем"). Этой работой занимаются протоколы маршрутизации сообщений. Основная задача нашей статьи - попытаться выяснить, каким образом могут выявляться и "устраняться" отказы на более низких уровнях стека протоколов. (Этим, однако, возможности самовосстановления не ограничиваются - см., например, врезку "Спрос - не беда"). Время восстановления работоспособности сети после отказа может быть порядка нескольких миллисекунд, что, конечно, довольно много для современных быстродействующих сетей (где, собственно, такие технологии в основном и применяются), но ничтожно мало по сравнению со временем устранения неисправностей обычными методами.
Сети, "умеющие" самостоятельно обнаруживать и устранять ошибки, называют самовосстанавливающимися (self-healing). Ясно, что за способность сетей к самовосстановлению надо платить (в прямом смысле - использование подобных технологий связано с дополнительными расходами). В каких случаях это оправдано?
Во-первых, в случае так называемых критически важных приложений (mission-critical applications). Чуть позже мы еще расскажем о парочке таких приложений, пока же заметим, что вопрос о "критической важности" приложений во многом сродни вопросу о том, сколько человек составляет толпу. Ясно, что приложения, от работы которых зависит жизнь и здоровье людей (скажем программы для поддержки работы авиадиспетчеров) или нормальное функционирование национальной экономики (есть расчеты, свидетельствующие о том, что остановка работы, например, нью-йоркской биржи на несколько минут грозит мировым экономическим крахом), являются критически важными. А если речь идет "всего лишь" о больших убытках для какой-то одной, отдельно взятой организации? Тут уж каждая компания должна решить для себя сама, какие приложения "критически важные" и до какой степени дополнительные расходы для установки самовосстанавливающейся сети оправданы.
Как правило, и дополнительные расходы на установку сети, и возможные потери от простоя вполне сопоставимы. К примеру, имеются расчеты, свидетельствующие о том, что одно рабочее место в сети Token Ring (в этой топологии заложена способность к самовосстановлению, см. ниже) приблизительно на 250 долларов дороже рабочего места в сети Ethernet. Если принять срок службы сети равным трем годам и оценить стоимость рабочего времени сотрудников, то, зная примерную частоту отказов Ethernet, можно попытаться оценить, окупятся ли за время службы более дорогой сети дополнительные расходы на ее приобретение.
Во-вторых, самовосстанавливающиеся сети могут понадобиться для удаленных сегментов сети. Развитие этой области применения самовосстанавливающихся сетей напрямую связано с ростом распространенности международных корпоративных сетей. Филиалы организаций разбросаны по всему свету, и далеко не в каждом имеется собственный штат технического персонала, способный разобраться и устранить неисправность сети. Поэтому организациям часто приходится отправлять сотрудников на ремонтные работы за сотни (если не тысячи) верст. Это дорого и долго, ведь время, как известно, - деньги. Применение самовосстанавливающихся сетей в подобных ситуациях несколько, скажем так, успокаивает нервы и позволяет если не вовсе отказаться от командировок сотрудников (устранять-то неисправность все же необходимо), то, во всяком случае, обеспечивает работоспособность филиала до прибытия ремонтников и освобождает компанию от необходимости иметь что-то вроде "части быстрого реагирования".
Третья область применения технологии самовосстановления (гораздо более узкая, чем две предыдущие, но все же, на наш взгляд, заслуживающая внимания) - это сети, где возможность частых обрывов связи между рабочими станциями заложена в самом характере носителя. Примером здесь могут служить офисные беспроводные сети на инфракрасных лучах. Такие сети сейчас весьма популярны на Западе и становятся все более популярны в России. Эта технология незаменима для установки временных сетей; для работы в помещениях, где кабельные работы запрещены или невозможны по техническим причинам; для поддержки мобильных пользователей в больших помещениях.
Применение беспроводных технологий весьма разнообразно, и обсуждение данного вопроса увело бы нас слишком далеко в сторону; "LAN Magazine/Русское издание" не раз писал и о самой технологии, и о примерах ее применения. Одним из носителей, используемых для передачи данных в беспроводных сетях, является инфракрасное излучение, достоинства которого - относительная дешевизна соответствующего оборудования и высокая пропускная способность получающейся сети. Однако при использовании инфракрасных лучей связь между рабочими станциями очень легко может прерваться - достаточно просто случайно чем-нибудь (например листом бумаги) закрыть один из излучателей. Понятно, что такая технология не выдержала бы конкуренции с другими, если бы сеть не обеспечивала самовосстановления. Именно поэтому инфракрасное излучение применяется, в основном, в беспроводных сетях Token Ring с двойным кольцом, где самовосстановление является одним из базовых свойств сети.
КАК ПРИШИТЬ ХВОСТ ОБРАТНО?
Token Ring - это самый старый сетевой протокол с возможностью самовосстановления на уровне канала. Напомним вкратце общее устройство Token Ring. Все станции, объединенные этой сетью, соединены в кольцо. Каждая станция подключена к сети через специальный узел подключения к кабелю (media access unit - MAU), где могут осуществляться простейшие коммутационные операции. Станции передают друг другу специальную служебную последовательность байт, именуемую маркером. Станция, желающая осуществить передачу, должна вначале дождаться получения маркера и лишь затем передать свое сообщение, вписав его в середину между началом и концом маркера. Одно из полей сообщения - приемный адрес, то есть адрес станции, которой данное сообщение предназначено. Сформировав таким образом кадр, станция-отправитель посылает его в сеть. Все станции в кольце просто передают кадр своему соседу "вниз по течению", причем каждая станция просматривает поле приемного адреса, и если содержимое этого поля совпадает с собственным адресом станции, то кадр копируется во внутренний буфер. Это нисколько не нарушает передачи кадра по кольцу - его путешествие продолжается до тех пор, пока кадр не достигнет станции-отправителя. Только эта станция может снять кадр с кольца, "освободив" тем самым маркер для последующей передачи информации. Это, конечно, очень схематичное представление о работе Token Ring, но для наших целей его вполне достаточно. Как видим, работа кольца Token Ring связана с существенными накладными расходами на передачу информации; это, однако, в значительной мере компенсируется повышением устойчивости работы сети и появлением возможностей для самовосстановления.
(1x1)
Рисунок 1.
Самовосстановление в сети Token Ring. А - возникновение неисправности.
Сигнальные последовательности генерируются рабочей станцией 6. Б - блокировка
поврежденного участка сети. Данные направляются в обход, по резервному
кольцу. В - блокировка поврежденной рабочей станции.
Рассмотрим сеть, состоящую из шести станций. Предположим, что обрыв линии возник между пятым и шестым узлом. Тогда станция 6 не получит маркер в назначенное время. На станции имеется специальный таймер, определяющий заданное время прибытия маркера: если таймер зафиксирует тайм-аут, станция 6 воспримет это как свидетельство обрыва и начнет генерировать специальный кадр данных, именуемый сигнальной последовательностью. О восстановлении работы сети будет свидетельствовать получение станцией 6 своего же собственного сигнального кадра, сумевшего в итоге обойти полный круг по сети. Начав посылать сигнальную последовательность, станция "заводит будильник" - при неполучении сигнального кадра по истечении заранее заданного тайм-аута, генерируется сигнал о неисправности сети, который передается протоколам более высокого уровня.
Сама же процедура восстановления работы сети выглядит следующим образом. Во-первых, следует отметить, что для восстановления работы сети одного кольца сети недостаточно: используется еше и второе, резервное кольцо, по которому информация передается в противоположном направлении. Без такого резервного кольца самовосстановление сети невозможно. Поскольку место возникновения неисправности известно довольно точно (это либо станция 5, либо кабель между станциями 5 и 6), то можно попытаться пустить данные в обход поврежденного участка, осуществив необходимые коммутационные операции при помощи MAU. Вначале MAU "пытаются" отсечь участок кабеля между станциями 5 и 6. Если же это не приводит к положительным результатам (напомним, что работа сети считается восстановленной лишь тогда, когда станция 6 получит свой собственный сигнальный кадр), то коммутация осуществляется таким образом, чтобы полностью отсечь станцию 5 от кольца. Отметим, что все эти коммутационные операции не приводят к изменению порядка следования станций в кольце. Такая операция непременно должна сопровождаться генерацией сообщения о неисправности, поскольку, как уже говорилось выше, сеть не может "починить себя сама" - имеется лишь возможность, несмотря на неисправность, продолжать работу.
Примерно на тех же принципах основано самовосстановление в высокоскоростных сетях на оптическом носителе FDDI. В сетях FDDI обеспечивается обмен информацией с пропускной способностью 100 Мбит/с, однако, с точки зрения логической структуры процедуры обмена данными, эта сеть не слишком отличается от Token Ring. FDDI часто используется в качестве опорной сети предприятия, а значит, самовосстановление здесь как нельзя кстати. Подчеркнем еще раз, что самовосстановление работы сети в полном смысле этого слова возможно только при наличии резервного кольца для передачи информации.
ПРИБАВИМ ГАЗУ
Идея самовосстанавливающихся сетей получила свое воплощение в появившихся примерно десять лет назад сетях на оптических носителях под названием SONET (Synchronous Optical Network). SONET [и его европейский аналог - SDH (Synchronous Digital Hierarchy)] обеспечивает сверхскоростной обмен информацией, причем это могут быть и собственно данные, и оцифрованная речь. SONET часто рассматривают как физическую основу для сетей ATM. Сети SONET/SDH включают в себя систему каналов связи на оптическом носителе различной пропускной способности. Пропускная способность базового канала SONET составляет 51,84 Мбит/с; комбинируя несколько базовых в один, можно довести суммарную пропускную способность до 13,22 Гбит/с.
Несмотря на то что вся технология SONET работает на физическом уровне стека протоколов, сети SONET обладают весьма значительным интеллектуальным потенциалом. В частности, этого интеллекта хватает на то, чтобы обеспечить самовосстановление сети. При передаче через сети SONET информация разбивается на кадры, представляющие собой прямоугольные массивы размером 90x9 байт. Каждый кадр состоит из двух полей - полезной нагрузки (поле SPE - Synchronous Payload Envelope) и накладных расходов (содержимое этого поля можно понимать как служебную информацию; его полное название по-английски - Transport Overhead - TOH).
Внутри SONET можно выделить несколько уровней интерфейса между более высокими стеками протоколов и собственно физической средой передачи данных. Появление большого числа слоев в пределах одного физического уровня стека протоколов OSI есть, в значительной степени, следствие того, что сеть SONET неоднородна: она состоит из каналов различной пропускной способности. На самом нижнем уровне, Photonics, происходит непосредственно "закачка" информации в оптический носитель (на всех вышележащих уровнях информация представляется в виде электрических сигналов), на следующем уровне (Section) обеспечиваются правильное обрамление информации для передачи по линиям данной пропускной способности и обработка ошибок; на третьем уровне (Line) осуществляются согласование линий различной пропускной способности и мультиплексирование нескольких низкоскоростных каналов в один высокоскоростной; наконец, основной функцией верхнего уровня (Path) является поддержка соединения между оконечными устройствами с учетом того, что на пути передачи информации могут встретиться линии различной пропускной способности. Именно этот уровень отвечает за интерфейс с протоколами вышележащих уровней модели OSI.
За обнаружение ошибок передачи (в частности, возникающих по причине неисправности сети) отвечает уровень Section. Для сообщения об их обнаружении используются биты поля SOH (Section Overhead) общего служебного поля передаваемых кадров. Эти биты обрабатываются на уровнях Line и Path, где, собственно, и обеспечивается самовосстановление. С топологической точки зрения, данная процедура мало чем отличается от самовосстановления в других сетях кольцевой структуры: поток информации переключается на второе, резервное кольцо, а поврежденный участок отсекается.
(1x1)
Рисунок 2.
Полезная нагрузка вставляется в кадр SONET, не дожидаясь начала следующего
кадра.
Приведем несколько примеров использования SONET, наглядно свидетельствующих о том, насколько важно для таких сетей самовосстановление.
В начале этого года появились сообщения об организации правительственной городской сети (Government Metropolitan Area Network - GMAN) в Вашингтоне на базе технологии SONET. Данная сеть представляет собой часть вашингтонской сети для связи между правительственными организациями (Washington Interagency Telecommunications Network - WITS). GMAN предполагается применять в качестве опорной сети для WITS. Пропускная способность новой сети составляет 2,4 Гбит/с; она работает на основе оптических каналов OC-48. Основную часть нагрузки на GMAN составляет оцифрованная речь - телефонные переговоры между столичными правительственными организациями. До появления GMAN для обмена информацией между правительственными организациями использовались каналы T-1. Наличие функций самовосстановления в SONET очень важно для системы правительственной связи, какой, собственно, и является GMAN.
Сеть SONET применялась также для информационной поддержки завершившихся недавно Олимпийских игр в Атланте. Вообще, информационная система Олимпийских игр - это колоссальный проект, объединивший в своем составе 250 локальных сетей, примерно 500 линий обмена данными, 10000 голосовых линий с возможностью одновременного выполнения примерно 1,3 миллиона телефонных звонков, а также 45 высокоскоростных самовосстанавливающихся колец на оптическом носителе, объединенных в самую большую на данный момент сеть SONET. Эта сеть использовалась, в частности, для поддержки работы олимпийского пресс-центра. Благодаря ей, журналисты могли в реальном времени просматривать передаваемую в цифровом виде видеоинформацию и добавлять в видеоинформацию свои комментарии, после чего, опять-таки в цифровом виде, информация передавалась в вещательный центр Игр, откуда уже осуществлялось вещание в необходимом направлении. Нужда в самовосстановлении здесь очевидна: малейший простой в работе олимпийского пресс-центра грозил весьма серьезными неприятностями для организаторов Игр - события на спортивных аренах продолжают происходить, время уходит, а журналисты ничего не могут передать своим слушателям. Это именно тот случай, когда самовосстановление должно происходить за доли секунды.
Именно такие временные параметры будет иметь новое самовосстанавливающееся кольцо, установку которого заканчивает компания Sprint - первое международное кольцо SONET. Пропускная способность нового кольца до 10 Гбит/с; время самовосстановления - от 50 до 60 миллисекунд. Было объявлено, что летом этого года Sprint переведет на SONET 25 из своих 43 оптических колец; к концу 1997 года число оптических колец Sprint предполагается довести до 101.
ЗОЛОТОЕ КОЛЬЦО
Интерес к самовосстанавливающимся сетям бурно растет. Связано это, по-видимому, в первую очередь с тем, что обмен информацией играет все большую роль в жизни организаций, и лишаться возможности такого обмена даже на непродолжительное время крайне разорительно. Кроме того, существенно возросла скорость передачи информации по сети, поэтому накладные расходы, связанные с организацией самовосстановления, ощущаются не так болезненно. Относительная стоимость самих линий связи (относительно тех потерь, к которым могут привести нарушения в обмене информацией) снижается. Думается, не ошибемся, если скажем, что именно этим обстоятельством объясняется бурное появление в самое последнее время целого ряда очень крупных проектов с использованием самовосстанавливающихся сетей. И в будущем, в чем мы уверены наверняка, дальнейший рост числа таких проектов неизбежен.
Александр Крейнес - научный сотрудник Института кристаллографии РАН. С ним можно связаться при помощи электронной почты по адресу: kreines@cti.ru.
АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Спрос - не беда
Обновление программного обеспечения (software upgrade) может представлять собой довольно сложную и не слишком приятную задачу. Владелец программного обеспечения должен постоянно следить за появлением новых версий, что при использовании большого числа программ бывает не очень-то просто. Традиционный способ обновления программного обеспечения бывает неудобен и для производителей программного обеспечения, поскольку торговая сеть часто неохотно берет в продажу мало отличающиеся новые версии. Кроме того, при объявлении о создании новой версии продавцы зачастую возвращают "устаревшие", по их мнению, предыдущие версии, нанося тем самым немалые убытки производителю. Поэтому разработчики программного обеспечения, как правило, не склонны к постепенному усовершенствованию программного обеспечения (что значительно удобнее для пользователя), а сразу выпускают в продажу существенно измененные программы.
В этом смысле, большую пользу может принести самообновляющееся программное обеспечение. Идея его работы такова: специальная процедура в рамках программы время от времени запрашивает компанию-производителя (по телефонной сети через модем) о том, не внесены ли какие-либо изменения в программу. Если такие изменения внесены (речь, конечно, идет о небольших усовершенствованиях - например устранение замеченной ошибки), то программа самостоятельно загружает измененные фрагменты кода, и таким образом обновление версий происходит без вмешательства пользователя. Помимо этого, новые версии программного обеспечения можно получать и средствами Internet, загружая их с сервера, поддерживаемого производителем программного обеспечения.
Самообновляющиеся программы уже появляются в продаже. Одной из первых таких программ стала производимая компанией Delrina программа поддержки доступа к Internet под названием Cyberjack. Для того чтобы загрузить новую версию программы, достаточно выбрать функцию Upgrade в меню Setup. Программа автоматически связывается с Internet-сервером компании Delrina, определяет, имеется ли там что-либо новенькое, и если да, то загружает все необходимые модули на компьютер пользователя. Единственное, что должен сделать пользователь, чтобы воспользоваться новой версией, так это перезапустить компьютер.