КаталогИндекс раздела

          

Linux: претендент на промышленный рынок

Jef Norton
Windy City Linux Group,
PDA Group

Linux; A Contender for the Enterprise Market
Опубликовано в: DB2 Magazine, Quarter 4, 2000, pp 23-29.

Linux быстро становится операционной системой, которую выбирают пользователи промышленных баз данных. Linux предлагает гибкую, безопасную и надежную среду. Если использованию базы данных сопутствует рост промышленных приложений, то администраторы системы и базы данных хотят сосредоточиться на прикладных решениях, а не на операционной системе или СУБД. Linux предлагает системным администраторам комфорт признанной промышленной системы. В областях от настольного ПК до серверного кластера Linux завоевал преданность миллионов разработчиков и пользователей во всем мире потому, что он освобождает их для фокусирования внимания на чем-то еще, кроме операционной системы.

Я объясню, почему Linux так хорошо соответствует требованиям промышленного уровня и как DB2 Universal Database (UDB) для Linux дополняет его силу. Но для удобства тех читателей, которые могут быть незнакомы с Linux, я сначала дам некоторые базовые сведения о том, что он такое, и почему ядро его верных сторонников продолжает расти.

История Linux

Linux - это свободно распространяемая операционная система с "открытым исходным кодом", написанная Линусом Торвальдсом, бывшим студентом Хельсинского университета, Финляндия, на базе Minix - Unix-подобной операционной системы. Целью Торвальдса была разработка операционной системы, соответствующей стандарту POSIX (Portably Operation System Interface) для Unix. С момента его появления 3 июля 1991г., тысячи разработчиков и программистов расширяли и отлаживали код операционной системы. (Вы можете больше прочитать об истории POSIX и Linux в Linux International - www.li.org - или посетив встречу местной группы пользователей.

Linux - лучший, но не единственный пример разработки движения "открытых кодов", процесса сотрудничества, который позволяет любым интересующимся программистам или разработчикам свободно и без ограничений на использование читать, модифицировать и отлаживать открытые коды программного обеспечения. Internet становится основным носителем, при помощи которого разработчики совместно используют код, и создает благоприятные условия для роста сообщества открытых кодов.

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

Как президент Windy City Linux User Group в Чикаго, я тестировал многие продукты и технологии от компаний, которые хотели получить поддержку от членов Linux-сообщества. Многие заявляли, что их продукты являются лучшими для Linux, но я всегда был склонен встречать такие заявления со скептицизмом. Прежде чем поддержать какое-либо коммерческое приложение для Linux, я задавал один вопрос: соответствует ли это программное обеспечение потребностям и заботам его пользователей?

С точки зрения пользователей Linux, мало того, работает ли приложение в Linux или нет. В отношении любого программного пакета пользователи прежде всего смотрят, соответствует ли он нуждам того проекта или задачи, с которой он работает. Они часто не вспоминают про такие вещи как надежность, безопасность и гибкость, пока не становится слишком поздно. Linux предлагает надежность, которая соответствует любой среде. Что до безопасности, то Linux неотъемлемо свойственен уровень безопасности, далеко превосходящий его конкурентов. Гибкость - суть движения Linux. Как часть сообщества открытых кодов, приложения Linux должны придерживаться его стандартов. Эти стандарты позволяют пользователям иметь доступ к исходным кодам, позволяют им добавлять, изменять и даже удалять детали кода по своему выбору. Пользователи Linux обычно воплощают дух сообщества, отдавая свое свободное время улучшению программ, которые они используют.

Мощность для промышленного применения

Linux быстро становится основным выбором серверной операционной системы для провайдеров Internet, профессионалов в корпоративных сетях и многих программистов и разработчиков систем. Беглый анализ характеристик Linux показывает, почему. Linux предлагает:

Ядро Linux 2.4. поддерживает размер файлов до 16,777,216TB, размер файловой системы для "родной" файловой системы Linux - ext2fs - от 4TB по умолчанию до 32TB в некоторых архитектурах. Linux теоретически позволяет открывать одновременно до 1,048,576 файлов, но по умолчанию принято 8,192. Вы можете монтировать 2,147,483,647 разделов, по умолчанию - 256. С такой мощностью Linux может поддерживать до 32,768 раздельно выполняющихся процессов с 64GB памяти - максимальный объем оперативной памяти, который Linux поддерживает в настоящее время.

Теперь мы более подробно осветим некоторые из наиболее важных в промышленном применении характеристик.

Гибкость. Исходный код Linux защищается и свободно распространяется по GNU Public License, которая позволяет кому угодно свободно модифицировать исходный код при условии, что все модификации также будут распространяться с исходным кодом. Благодаря движению открытых кодов, Linux поддерживает множество процессоров и архитектур, включая все семейство процессоров X86, ALPHA, SPARC и PowerPC. И маленькое ядро Linux позволяет ему выполняться и на большинстве персональных цифровых устройств. Linux был разработан для выполнения приложений Unix, включая серверы Web, почтовые серверы и серверы баз данных (включая DB2).

Поскольку Linux поддерживает широкий спектр файловых систем, пользователь может иметь любую компьютерную систему и работать в той же сети, без необходимости покупать специальное аппаратное или программное обеспечение. А кластерные возможности Linux позволяют применять его для обработки таких процессов, как вычисления и поиск на больших наборах данных, которые раньше могли обрабатывать только суперкомпьютеры. В результате Linux становится хорошим кандидатом на выполнение научных и инженерных приложений и проектов, где требуется высокая готовность, включая Web-сайты, корпоративные центры данных и приложения электронного бизнеса.

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

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

Безопасность. Защитные способности Linux (такие как безопасность на уровне ядра и методология защиты сети и приложений) вносят свой вклад в популярность операционной системы в бизнесе. В дополнение к процедурам сетевой безопасности, обычно используемым системными администраторами, Linux предлагает методологию безопасности на уровне ядра, свойство, которое может обеспечить только продукт с открытым кодом; другие производители операционных систем не разрешают пользователь писать код прямо в ядро. Другое преимущество безопасности на уровне ядра состоит в том, что пользователь может полностью отключить те службы или свойства в операционной системе, которые могут составлять слабые места и быть объектами атак.

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

Ядро Linux разрешает такой подход снизу-вверх. Система Обнаружения Вторжений Linux (LIDS - Linux Intrusion Detection System) - один из таких примеров. LIDS полностью засекречивает файлы на вашем жестком диске и, при определенной конфигурации, препятствует кому бы то ни было изменять файлы - даже пользователю с привилегиями root (администратору). LIDS может защитить скрипты HTML и CGI и защитить вашу Главную Загрузочную Запись, запретив вставку модулей в ядро.

Linux позволяет вам скрыть процессы от "прослушивания"( sniff and strobe - обнюхивание и стробирование) вашего сервера. Прослушивание сервера - обычный прием, применяемый теми людьми, которые пытаются угадать, какие порты и процессы используются на вашем сервере; такая информация позволяет им затем определить и спланировать, какой им использовать метод взлома. Такая практика широко распространена и применялась в большинстве известных атак и взломов защиты. Если атакующие знают, какие процессы и порты использует сервер, они могут запустить через Internet программы, использующие эти процессы и порты. Такой уровень защиты от прослушивания вы можете найти только в операционной системе, которая допускает доступ и манипуляции пользователя на уровне ядра. Поскольку Linux поддерживает мощное шифрование на уровне ядра для защиты сетевого трафика, это хороший выбор для реализации виртуальной приватной сети.

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

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

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

Когда я впервые увидел Linux в 1995г., мне на ум пришла старая поговорка: "Вы получаете то, за что вы заплатили". Как и многие другие, я предполагал, что свободная система не сможет удовлетворить коммерческим требованиям. Но миллионы системных администраторов и разработчиков программного обеспечения вместе с миллионами удовлетворенных пользователей доказали, что я ошибался. С Linux вы можете сделать значительно больше, чем с другими операционными системами, и тот что он свободный - это только приз.

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

Сервис поддержки. По мере роста популярности Linux все больше и больше компаний (такие как как Linuxcare, www.linuxcare.com) предлагают службы его поддержки в спектре от поддержки пользовательского уровня до поддержки продвинутого системного администрирования для промышленного сообщества. В группах пользователей Linux вы можете найти также людей и фирмы, которые охотно помогут вам инсталлировать и сопровождать Linux. А Web-сайт www.linux.com представляет информацию "как сделать ..." и ответы на часто задаваемые вопросы.

Linux и DB2

Какое это все имеет отношение к DB2? С тех пор, как IBM в 1998г. портировала DB2 на Linux, многие пользователи выбрали миграцию на промышленную СУБД, отказавшись от полезных, но ограниченных СУБД Linux, таких как MySql и mSql. И основные дистрибьюторы Linux (включая Red Hat, Caldera, TurboLinux и Suse) поддерживают DB2. Другие дистрибьюторы Linux (как Yellow Dog) тоже заявляют о поддержке DB2, но я еще не имел возможности тестировать их.

Все распространяемые версии Linux поддерживают массовый параллелизм и возможности распределенной обработки, однако TurboLinux специально оптимизирован для кластерной и высокопроизводительной серверной среды. Поскольку промышленные пользователи требуют повышения скорости обработки и большей надежности, Linux предлагает кластеризацию и распределенную обработку для удовлетворения этих требований. IBM реализует DB2 UDB Enterprise-Extended Edition (EEE) для Linux (сейчас в бета-версии) с кластерными возможностями, которые дополняют Linux. DB2 UDB EEE для Linux объединяет уже существующие DB2 UDB Personal Edition, Workgroup Edition и Enterprise Edition. IBM даже портирует Linux на S/390.

Я впервые столкнулся с DB2 для Linux, когда выполнял одну работу для крупнейшей в Чикаго компании Web-проектирования. В ходе этого проекта меня попросили рекомендовать для клиента этой Web-фирмы какую-нибудь СУБД, кроме DB2, несмотря на то, что клиент уже использовал DB2 в своей системе на мейнфрейме. DB2 для этого клиента казалась прекрасно подходящей. В компании уже был персонал, который имел знания о DB2 со времен мейнфреймов, и IBM исторически доказала свои возможности по сопровождению. Клиент только просил заменить мейнфрейм на Linux.

Я опасался, что моя Web-фирма попадет впросак, предполагая, что следует выбрать другую СУБД на том основании, что так поступили многие другие Web-фирмы, следуя той рекламной кампании фирм - производителей СУБД, которая ведется на рынке. Я представил множество цифр, фактов и примеров, чтобы подтвердить мое предположение о том, что DB2 будет лучшим выбором для нужд клиента.

Примеры нетрудно было найти. Я расспрашивал друзей и клиентов об успешных проектах на базе DB2. Один мой близкий друг, специалист-консультант по DB2 на мейнфреймах, но не по DB2 на Linux, добровольно вызвался помочь мне. Он произвел поиск в сети источников информации, не связанных с IBM, и натолкнулся на очень интересную статистику на сайте Linuxcare. Сравнительная таблица продуктов показывала пользовательский рейтинг СУБД, которые есть для Linux. Пользователи оценивали СУБД по скорости работы, соответствию SQL, простоте администрирования, возможности реплицикации, масштабируемости, стоимости, возможностям триггеров, хранимых процедур и по программной поддержке. DB2 получила высшую оценку - 4.6 из 5, - выше любой другой СУБД в списке.

Под впечатлением этих отзывов пользователей я захотел попробовать DB2 для Linux прежде чем давать какие-то рекомендации. Я получил два компьютера от Hewlett-Packard и приготовил их для выполнения моих собственных тестов. (Я не рекомендую делать это дома - вы можете затратить несколько дней только на подготовку. Но у меня была задача.)

Мои эксперименты не имели научного значения, скорее это были упражнения, приближенные к реальным задачам. После выгрузки информации "как сделать..." о DB2 для Linux с www.redhat.com/support/ldp.html и кода DB2 с www.ibm.com я инсталлировал DB2 на двух HP Netserber E60. Я использовал стандартную для E60 конфигурацию (64MB RAM и процессор PIII 500MHz) с Red Hat 6.1 (Я мог бы использовать 6.2, то я глубоко уверен, что если что-либо работает, не надо это исправлять). Я нашел, что DB2 очень легка в инсталляции. Я инсталлировал ее всего за 10 минут.

Но я потратил годы, устанавливая разные СУБД на разных компьютерах. Для достоверного тестирования этого процесса я пошел в местный колледж и завербовал студента, который был полным новичком и в Linux, и в СУБД. Я дал ему необходимую информацию "как сделать..." и попросил его прийти в мою лабораторию, когда он решит, что сможет инсталлировать Linux и DB2. Когда он зашел в тот же вечер, я посадил его за те же два компьютера и попросил инсталлировать Red Hat 6.1, что заняло у него около 30 минут, а затем DB2 на обоих компьютерах с Red Hat. У него больше времени заняла выгрузка кодов от IBM, чем инсталляция и конфигурирование DB2 на Linux машинах. Если это не просто для использования, то я не знаю, что просто.

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

Соглашение открытого кода. DB2 имеет долгую историю надежного сервиса в среде мейнфреймов. Хотя некоторое программное обеспечение, успешно реализованное в одной архитектуре, не может хорошо работать в другой, это не так для DB2 для Linux, которая предлагает ту же надежность и производительность, что и в других видах DB2, в сочетании со стабильностью операционной системы Linux. И соглашение IBM с сообществом Linux затмевает все другие СУБД, портированные на Linux. IBM недавно огласила о своем участии в первой независимой, некоммерческой лаборатории открытых кодов для Linux (www.oslab.org).

IBM также реализовала значительно меньшую версию DB2, названную DB2 Everyplace, которая позволяет разработчикам делать базы данных на встроенных микропроцессорных устройствах, которые выполняют встроенные приложения Linux. DB2 Everyplace буде также работать на PalmOS, Windows CE, Symbian EPOC и QNX Neutrino.

Системное администрирование. Системные администраторы могут ожидать от DB2 для Linux такой же стабильности, производительности и масштабируемости, какую они ожидают от DB2 для мейнфреймов. Масштабируемость является жизненно важной, если вы разрабатываете приложения, которые будут работать на разных платформах и архитектурах, общие для всех предприятий, которые используют Linux. Другие ключевые свойства DB2, которые дополняют Linux следующие:

Хотя оперативная аналитика пока не поддерживается в реализации для Linux, IBM собирается скоро предложить и ее.

Разработка приложений. DB2 для Linux предлагает прямо "in box" инструменты, которые помогут вам разрабатывать, тестировать и внедрять приложения. Нет необходимости покупать дополнительные инструменты. Вместе с DB2 UDB пользователь получает:

Для разработчиков на Java DB2 предлагает JDBC, который позволяет обращаться к DB2 из Java. Эта возможность обратно совместима с JDBC 1.22 и JDBC 2.0. DB2 обеспечивает новые объекты Java для поддержки больших двоичных объектов (BLOB), больших символьных объектов (CLOB) и баз данных больших символьных объектов (DBCLOB). Хранимые процедуры и функции, определяемые пользователем, на Java поддерживаются оператором CREATE PROCEDURE. Вы можете писать процедуры с оператором FENCED или NOT FENCED. DB2 загружает Виртуальную Машину Java (JVM) при первом вызове, и она остается загруженной до конца вложенного процесса. Для NOT FENCED функций, определяемых пользователем, и хранимых процедур DB2 загружает одну JVM для экземпляра СУБД и выполняет ее в адресном пространстве СУБД. Этот подход улучшает производительность: изолируя JVM, DB2 сокращает перекрытия и утечки памяти.

DB2 UDB для Linux также поддерживает Extensible Markup Language (XML). Документы XML традиционно записываются в отдельные файлы в файловой системе, но DB2 XML Extender позволяет сохранять документы XML как колонки или как коллекции, используя ряд колонок. XML Extender также вводит три новых типа данных: XMLVARCHAR, XMLCLOB и XMLFILE. Эти типы позволяют XML Extender сохранять, выбирать и изменять XML документы в одной колонке. DB2 также обеспечивает инструментарий для сохранения XML документа в ряде колонок с инструментом администратора, помогающим разрабатывать отображение XML на отношения. Document Access Definition (DAD) управляет структурой и отображением данных для XML документа. DB2 также поддерживает таблицы стилей Extensible Stylesheet Language (XSL) для форматирования и генерации содержания.

DB2 дает клиентам Linux программное средство, которое соединяет Web-приложение с DB2. Это средство, называемое DB2 Net.Data поставляется вместе с DB2 для Linux без доплаты. Net.Data позволяет поддерживать XML без введения тегов вручную.

Будущая реализация Net Search Extender на Linux улучшит поисковые возможности. Net Search Extender использует технику индексирования, известную как n-диаграммы для быстрого поиска в текстах. При поиске текста в памяти Net Search Extender обеспечивает весьма мощные и гибкие поисковые возможности. Поиск в будущей реализации обеспечит еще большую скорость, чем нынешний вариант, основанный на индексных кластерах.

Управление базой данных. Для тех, кому не нравится управление базой данных из командной строки, DB2 для Linux предлагает графический интерфейс на базе Java для управления базой данных. Web Control Center - приложение Java который может выполняться на любом Java-совместимом Web-броузере.

Новые разработки

Новое ядро Linux, которое скоро должно появиться в окончательной реализации (2.4), окажет влияние и на выполнение СУБД. Одно из таких улучшений будет в том, что полностью переписана виртуальная файловая система (VFS). Она была полностью перепроектирована с устранением кешей чтения и записи. Новое ядро будет использовать единую схему буферизации, устраняя ошибки, которые возникали из-за наличия двух раздельных кешей. Устранение кеша можно приравнять к увеличению памяти для системных ресурсов. Коды также были переписаны так, чтобы стать менее сложными и более понятными.

Новое ядро также переходит к "построчному" вводу-выводу, в котором ввод-вывод идет прямо в пространство памяти пользователя, обходя буферный кеш ядра. Это изменение увеличит производительность системы и таких приложений как DB2.

Вопреки моему исследованию, Web-компания, для которой я работал, поддалась на рыночную рекламу и рекомендовала другую СУБД. И потеряла контракт. Фактически, их клиент продолжает использовать DB2 и планирует миграцию DB2 с мейнфрейма на Linux в течении года. Несмотря на это, я благодарен этому проекту за то, что он помог мне взглянуть выше рекламной шумихи и открыть, какой замечательный смысл имеет комбинация DB2+Linux.


КаталогИндекс раздела