Рубрика ‘Ubuntu’

SSL сертификат и A+ по тестам ssllabs.com

Рано или поздно перед любым владельцем сайта встает вопрос настройки HTTPS доступа.

Для этого необходимо купить или получить бесплатный сертификат от WoSign и настроить его в веб сервере сайта, ниже укажу пример конфигурации для Nginx.

Конфигурация SSL:

Проверить корректность внесенных изменений можно на ssllabs.com, пример для этого сайта.

Изменение скорости работы вентиляторов на серверах Supermicro

На серверах Supermicro есть возможность при помощи утилиты ipmitool изменить скорость работы вентиляторов, для этого нужно поставить утилиту, подгрузить необходимые для ее работы драйвера и выполнить следующие команды:

Aufs и неправильная очередность загрузки разделов

При использовании Aufs в ОС Ubuntu возникает проблема, а именно – при загрузке ОС разделы с aufs монтируется самыми первыми, что в итоге приводит к проблемам, так как aufs разделы собираются из других разделов, а так как на момент сборки aufs раздела их нет, так как они монтируются позже или параллельно с aufs разделами, то в итоге либо сервер не загружаются, либо из aufs раздела выпадают некоторые подразделы.

В итоге проблема решается путем добавления параметра noauto в /etc/fstab и команд mount в файл /etc/rc.local для aufs разделов.

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:

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

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

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. В следующих заметках напишу как удалось решить и эту проблему.