Эндрю Таненбаум: Компьютерные сети

Еще одна классическая книга в ИТ, но по компьютерным сетям: Эндрю Таненбаум: Компьютерные сети.

Читал ее после книги Олифера, она помогла мне раскрыть некоторые дополнительные моменты и более широко изучить вопрос работы сетей.

Эндрю Таненбаум: Компьютерные сети

От автора:

Перед вами – очередное, пятое издание самой авторитетной книги по современным сетевым технологиям, написанной признанным экспертом в этой области Эндрю Таненбаумом в соавторстве с профессором Вашингтонского университета Дэвидом Уэзероллом. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером и использовалось в качестве базового учебника в ведущих технических вузах.
В книге последовательно изложены основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Авторы подробнейшим образом объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей – от физического до уровня прикладных программ. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования Интернета и компьютерных сетей различного типа. Пятое издание полностью переработано с учетом изменений, происшедших в сфере сетевых технологий за последние годы и, в частности, освещает такие аспекты, как беспроводные сети стандарта 802.12 и 802.16, сети 3G, технология RFID, инфраструктура доставки контента CDN, пиринговые сети, потоковое вещание, интернет-телефония и многое другое.

Эндрю Таненбаум: Современные операционные системы

Эндрю Таненбаум: Современные операционные системы

Еще одна классическая книга в ИТ: Эндрю Таненбаум: Современные операционные системы.

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

 

Эндрю Таненбаум: Архитектура компьютера

Классика компьютерной литературы, читал ее долго и частично с интересом: Эндрю Таненбаум: Архитектура компьютера.

Эндрю Таненбаум: Архитектура компьютера

От автора:

Книга Эндрю Таненбаума, всемирно известного специалиста в области информационных технологий, писателя и преподавателя, выходящая уже в шестом издании, посвящена структурной организации компьютера. В ее основе лежит идея иерархической структуры, в которой каждый уровень выполняет вполне определенную функцию. В рамках этого нетрадиционного подхода подробно описываются цифровой логический уровень, уровень архитектуры команд, уровень операционной системы и уровень языка ассемблера. В шестое издание внесены многочисленные изменения, которые приводят книгу в соответствие со стремительным развитием компьютерной отрасли. В частности, была обновлена информация о машинах, представленных в качестве примеров: Intel Core i7, Texas Instrument OMAP4430 и Atmel ATmega168.

Parted: The resulting partition is not properly aligned for best performance

Тем кто сталкивался с разметкой емких дисковых подсистем знакома утилита parted. Для тех кто читает про нее впервые поясню – утилита fdisk или cfdisk не умеют работать с дисковыми подсистемами емкостью >2Tb, о чем честно и пишут:

Соответственно при помощи утилиты parted мы можем сделать 2-е базовые вещи:

  • Изменить тип таблицы разделов с MBR на GPT
  • Разметить дисковую подсистему на нужное количество разделов

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

Но вернемся к сообщению указанному в заголовке заметки. Это сообщение выводится в случае если при разметке parted считает что вы указали неправильные значения для начала и конца раздела, например:

И из-за этого данные, которые будут записываться или читаться с диска, будут размещены не самым оптимальным способом. Данная проблема возникла в связи с переходом производителей жестких дисков на другой размер секторов, а именно с 512B на 4KB, и в связи с этим, если при разметке диск указать неправильный стартовый сектор для раздела, то может получиться ситуация, когда один логический блок данных в 512B будет записан сразу на два 4KB сектора, которые будут прочитаны контроллером жесткого диска при запросе на выборку данных, что в итоге приводит к снижению производительности всей дисковой подсистемы. Более подробно очень детально описана данная ситуация на сайте Seagate.

Так чем же нам может помочь утилита parted для решения описанной проблемы – у ней есть встроенный функционал для расчета оптимального начального смещения для корректного выравнивания границ разделов. Настроить логику работы данного функционала можно при помощи ключа “-a”, более подробно можно прочитать в документации.

Данный функционал работает по следующей логике:

Где указанные параметры – это значения в sysfs привязанные к дисковой подсистеме или конкретному разделу, например:

Поэтому для решения указанной в заголовке проблемы, вы можете посчитать номер стартового сектора в ручном режиме по формуле и указать его в parted:

Либо довериться аналогичному алгоритму встроенному в утилиту:

В случае если ошибка не возникнет и раздел будет размечен можете считать что вы все сделали правильно и у вас правильно произведено выравнивание блоков на дисковой подсистеме.

Виктор Олифер, Наталия Олифер: Компьютерные сети. Принципы, технологии, протоколы

Одна из моих первых книг по ИТ и компьютерным сетям в частности - Виктор Олифер, Наталия Олифер: Компьютерные сети. Принципы, технологии, протоколы. Книга позволяет детально понять как работают локальные и глобальные сети, вобщем рекомендую к прочтению.

Виктор Олифер, Наталия Олифер: Компьютерные сети. Принципы, технологии, протоколы

От автора:

Новое издание одного из лучших российских учебников по сетевым технологиям можно считать юбилейным. Прошло ровно 10 лет с момента первой публикации книги “Компьютерные сети. Принципы, технологии, протоколы”. За это время книга приобрела широкую популярность в России, была издана на английском, испанском, португальском и китайском языках, и с каждым новым изданием она существенно обновлялась. Не стало исключением и это, четвертое издание, в котором появилось много новых разделов, посвященных самым актуальным направлениям сетевых технологий.
Издание предназначено для студентов, аспирантов и технических специалистов, которые хотели бы получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления такими сетями.

Tengine или Nginx на стероидах

Хочу познакомить вас с WEB сервером реализованным на кодовой базе Nginx и используемым на серверах крупнейшего проекта в Азии taobao.com - Tengine.

Сервер активно развивается с 2011 года, есть публично доступный репозиторий git, и по описанным ниже возможностям он становится моим претендентом № 1 для ближайшего тестирования функционала балансировки HTTP трафика.

Список возможностей (выделил особенно интересный для меня функционал):

Для меня указанного функционала критически не хватало в бесплатной версии Nginx, да интеллектуальные алгоритмы балансировки HTTP трафика есть в Nginx Plus Standard, но цена в 1350$ неподъемна для небольших проектов, которые уже понимают ценность обеспечения высокой доступности и производительности WEB подсистемы.

На первый взгляд отличие Tengine от Nginx Plus Standard пока заключается в отсутствии в первом механизмов:

Возможно скоро разработчики реализуют и этот функционал.

В ближайших планах у меня собрать пакеты для Debian и Ubuntu и протестировать надежность работы Tengine под нагрузкой, по результатам напишу.

UEFI, программный RAID массив и ошибки grub при загрузке

В прошлой заметке упомянул о проблеме при загрузке ОС Ubuntu Server 12.04.4 64 bit при включенном UEFI. Кстати, при включении UEFI необходимо прочитать и выполнить рекомендации указанные в документации.

Проблема заключалась в том, что в скрипте grub-install указывается неправильный UUID загрузочного разделе, из-за этого grub не может найти initramfs файл и ядро для дальнейшей загрузки.

У меня данная ошибка возникла при пересечении 2-х факторов:

  1. Сервер настроен для загрузки UEFI
  2. Для системного раздела используется программный RAID массив (md)

Проблема устраняется следующим способом:

Загружаемся с установочного диск Ubuntu, а именно выбираем вариант – rescue disk, либо в grub shell выполняем следующие команды (Для Ubuntu Server 12.04.4 LTS):

После загрузки сервера и ОС при помощи утилиты blkid получаем верный UUID для устройства /dev/md0 и далее выбираем 2-а варианта решения проблемы:

Ручной способ:

Монтируем раздел efi boot командой: mount /dev/sda1 /boot/efi
В файле: /boot/efi/EFI/ubuntu/grub.cfg ищем ошибочный UUID и исправляем его
После чего размонтируем раздел /boot/efi, копируем раздел sda1 в sdb1 командой dd if=/dev/sda1 of=/dev/sdb1 (диски необходимо указать согласно своей конфигурации) и повторяем вышеуказанные действия для второго раздела.

Полуавтоматический способ:
Скачиваем патч: http://goo.gl/oIEmcO (thx to Dick Porter (dick-8))
Монтируем раздел efi boot командой: mount /dev/sda1 /boot/efi и выполняем следующие команды:

Где patch – загруженный по ссылке файл.

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

Ubuntu: No Kernel Modules were found

Недавно столкнулся с проблемой при установке Ubuntu 12.04.4 LTS на сервер Dell Poweredge R510. Диск был подключен через DRAC, прошивки для комплектующих на сервере + BIOS были обновлены до последней версии. Что интересно устанавливаемая версия Ubuntu сертифицирована для установки именно на этом оборудовании, детали доступны по ссылке.

На одном из этапов установщик написал: No Kernel Modules were found и предложил продолжить установке или нет, в случае если соглашаться с продолжением, то установку завершить нельзя из-за отсутствия всех необходимых модулей для загруженного с CD диска ядра. Не определяется оборудование, нет поддержка отличных от ext4 файловых систем и т.д.

По описанию проблема очень похожа на ошибку описанную по ссылке.

Установить ОС на сервере удалось только изменив режим загрузки и инициализации сервера с BIOS на UEFI, к сожалению более детально проанализировать проблему времени не было. После этого установить ОС удалось сразу, но возникла еще одна проблема, а именно не происходила загрузка ОС дальше приглашения в grub console. В следующих заметках напишу как удалось решить и эту проблему.

Андрей Робачевский, Сергей Немнюгин, Ольга Стесик: Операционная система UNIX

Одна из моих первых книг по ОС Unix: Андрей Робачевский, Сергей Немнюгин, Ольга Стесик: Операционная система UNIX. Надеюсь до сих пор не потеряла свою актуальность.

Андрей Робачевский, Сергей Немнюгин, Ольга Стесик: Операционная система UNIX

От автора:

В этой книге даны основы организации, идеологии и архитектуры, объединяющие различные версии UNIX. Рассматриваются: архитектура ядра (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка (протоколы семейства ТСР/IР, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

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

Для студентов, преподавателей, пользователей и системных администраторов.

Эви Немет, Гарт Снайдер, Трент Р. Хейн, Бен Уэйли – Unix и Linux. Руководство системного администратора

Unix и Linux. Руководство системного администратора

Интересная книга: Unix и Linux. Руководство системного администратора

От автора:
Системное администрирование в книге рассматривается с практической точки зрения. Она представляет собой бесценный справочник как для начинающих администраторов, так и для опытных профессионалов. В ней подробно описываются эффективные методы работы и рассматриваются все аспекты системного администрирования, включая:

  • управление памятью,
  • проектирование и управление сетями,
  • электронную почту, веб-хостинг,
  • создание сценариев,
  • управление конфигурациями программного обеспечения,
  • анализ производительности, взаимодействие с системой Windows,
  • виртуализацию, DNS,
  • безопасность,
  • управление провайдерами IT-услуг и многое другое.

В данной книге отражены текущие версии следующих операционных систем:

Ubuntu Linux;
openSUSE Linux;
Red Hat Enterprise Linux;
Oracle America SolarisTM (бывший Sun Solaris);
HP HP-UX;
IBM AIX.

Уже от меня:

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