eth0.pro

Linux is working. The future is open.



У меня имеется RAID-контроллер Intel SRCSASLS4I (LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)). Для связи с ним в Linux применяется утилита MegaCli. Ее можно скачать с сайта Intel или LSI (не помню уже точно), либо установить из следующего репозитория:

deb http://hwraid.le-vert.net/debian squeeze main

Все команды должны оканчиваться выбором адаптера -a№, или -aAll.

# Краткая информация по контроллеру №0:
megacli -ShowSummary -a0

# Список и конфигурация всех контроллеров:
megacli -AdpAllInfo -aAll

# Время, установленное на контроллерах:
megacli -AdpGetTime -aAll

# Список физических дисков на всех контроллерах:
megacli -PDList -aAll

# Список виртуальных дисков (массивов):
megacli -LDInfo -Lall -aAll

19 мар 2013 г. | Теги: Linux RAID


После того как на сервере Proxmox с ядром 2.6.32-17-pve я сделал apt-get update, увидел, что доступны новые версии пакетов. Обновился через apt-get upgrade. Поставилось новое ядро 2.6.32-18-pve и еще некоторые библиотеки. Перезагружаюсь, смотрю в целом все нормально, но в web-интерфейсе встретил ошибку в свойствах KVM виртуальной машины и та не хотела запускаться:

TASK ERROR: Undefined subroutine &PVE::Storage::volume_is_base called at /usr/share/perl5/PVE/QemuServer.pm line 4481.

Оказалось всё очень просто до безобразия. apt-get upgrade не устанавливает новые необходимые пакеты, а лишь обновляет те, что уже установлены. Это неправильно! Чтобы обновление проходило верно нужно обновляться через apt-get dist-upgrade! Выполняю эту команду. Пошли скачиваться и устанавливаться недостающие пакеты. Как процесс закончился, я еще раз перезагрузился. Ошибка пропала и KVM стартанули без проблем!

5 мар 2013 г. | Теги: Proxmox


Да, PHP 5.2 признана устаревшей и сейчас "из коробки" в Debian Squeeze идет PHP 5.3. Но у меня есть один проект с Zend Optimizer, который закодирован под PHP 5.2. Надо было его запустить. Пришлось " даунгрейдиться".

И так, добавляем репозиторий Lenny в /etc/apt/sources.list:

deb http://archive.debian.org/debian lenny main contrib non-free
deb-src http://archive.debian.org/debian lenny main contrib non-free

В /etc/apt/preferences указываем предпочтение старому PHP:

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Обновляем базу:

apt-get update

Удаляем установленный PHP:

apt-get remove `dpkg -l | grep php | awk '{print $2}' | tr "\n" " "`

Устанавливаем один нужный пакетик и сам старый новый PHP 5.2:

apt-get install libkrb53
apt-get -t oldstable install `dpkg -l | grep php5 | awk '{print $2}' | tr "\n" " "`

Теперь с http://www.zend.com/en/products/guard/downloads качаем Zend Optimizer. Мне нужен был Zend Optimizer (Runtime for PHP 5.2 and earlier). Начиная с PHP версии 5.3 используется Zend Guard Loader (Runtime for PHP 5.3). И так, скачали, распаковываем. Внутри выбираем директорию под нашу версию PHP, меня интересует папка 5_2_x_comp. Оттуда файл ZendOptimizer.so копируем в /usr/local/lib/Zend (папку Zend создать, если ее не существует).

Должно работать:

# ls /usr/local/lib/Zend/ZendOptimizer.so 
/usr/local/lib/Zend/ZendOptimizer.so

Теперь идем в /etc/php5/apache2/conf.d и создаем там файл zend.ini:

[zend]
zend_extension=/usr/local/lib/Zend/ZendOptimizer.so

Проверяем:

# php -v
PHP 5.2.6-1+lenny16 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb  3 2012 08:19:55) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
    with Suhosin v0.9.27, Copyright (c) 2007, by SektionEins GmbH

Готово. Имеем PHP 5.2 и Zend Optimizer для него. Останется лишь перезапустить Apache.

21 фев 2013 г. | Теги: Debian PHP


С кластером Proxmox VE 2 мы получаем центральное управление несколькими физическими серверами, входящими в его состав, которых может быть 16 штук (возможно и более), встроенную безопасную VNC консоль, поддержку нескольких механизмов аутентификации (локальный, Active Firectory, LDAP и т. д.), управление правами на различные объекты (виртуальные машины, хранилища данных, ноды) на основе ролей, избавляемся от единственного и незаменимого master'а (multi-master cluster), онлайн-миграцию виртуальных машин между нодами и т. д.

Так же есть HA (High Availability) Cluster, но для правильного кворума мы должны иметь не менее трех работающих нод. Есть способ использовать HA и на двух нодах, но даже в этом случае желательно использование третьего сервера для общего хранилища, в противном случае нужно использовать более дешевое решение в виде DRDB. Используя HA у Вас должны быть только лучшие сервера, не имеющие единую точку отказа. Это подразумевает избыточность накопителей (Hardware RAID), резервирование блоков питания, UPS'ы, Network Bonding, Fencing-устройства (например iLO от компании HP). Сейчас этого всего у меня под рукой нет, поэтому будем строить простой, не HA кластер.

Читать далее

15 фев 2013 г. | Теги: Proxmox


На официальном сайте Proxmox нам предлагают скачать ISO-образ дистрибутива и с него производить установку. Но сей способ мне не очень понравился, т. к. я теряю рычаги управления тонкостями операционной системы и разметкой дисков, что для меня немаловажно. Если залезть в ихнюю базу данных, то можно найти руководство по развертыванию окружения уже на установленной системе Debian. От него то и будем отталкиваться.

Запускаем установку Debian и доходим до разметки дисков. У меня стоит аппаратный RAID-контроллер, поэтому необходимости в программном рейде у меня нет, хотя на другом сервере я поднимал mdadm. И так, я поступаю следующим образом. Делаю разделы первичный 512 Mb под /boot в ext3, первичный 2 Gb под swap и логический 30 Gb в ext3 под корень. И то на корень столько — слишком много, но учитывая сегодняшние объемы жестких дисков мы можем себе такое позволить. Всё оставшееся место оставляю неразмеченным, потом оно будет использовано под LVM. Заканчиваем установку ОС, с этим все достаточно тривиально.

Читать далее

15 фев 2013 г. | Теги: Debian Proxmox


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

md2 : active raid1 sda5[0] sdb5[1]
      29294520 blocks super 1.2 [2/2] [UU]

Для начала нужно остановить массив:

# mdadm -S /dev/md2

А после затираем суперблоки на разделах, которые входили в него:

# mdadm --zero-superblock /dev/sda5
# mdadm --zero-superblock /dev/sdb5

14 фев 2013 г. | Теги: Linux RAID


При использовании MySQL как бекенда для FreeRADIUS иногда случается неприятна вещь - нескольким разным клиентам выдается одинаковый IP-адрес. В следствии чего ни у кого из них не работает Интернет.

Чтобы найти одинаковые IP-адреса на ppp-интерфейсах одного NAS'а можно воспользоваться такой командой:

ip a | grep /32 | awk '{print $4}' | uniq -d

Но стоит помнить, что этот IP может быть и на другом насе, нужно доработать.

8 фев 2013 г. | Теги: Linux


В этой статье Вы не получите глубокое рассмотрение всего модуля к Django, со всеми фичами. Для этого можно обратиться к примеру сюда: http://djbook.ru/ch11s05.html, а здесь как бы Quick Start, чтобы быстро, просто и работоспособно.

И так! Для начала правим urls.py, чтобы назначить адрес, по кторому открывается RSS-трансляция.

urls.py:

from blog.views import LatestPosts
...
url(r'^rss/$', LatestPosts()),

Далее идем во вьюшку.

Читать далее

5 фев 2013 г. | Теги: Django


Нужно было быстренько поднять FTP сервер. Я как человек мыслящий на будущее, с масштабированием, а не только конкретной задачей, выбрал для этих целей сервер ProFTPd с хранением пользователей в PostgreSQL.

И так, ставим пакетики proftpd-basic и proftpd-mod-pgsql. Подразумевается, что СУБД уже установлена и настроена.

Приступаем к настройке.

Читать далее

5 фев 2013 г. | Теги: Debian PostgreSQL FTP


Есть очень простой и полезный скрипт, который показывает какой процесс и в каком объеме использует раздел подкачки.

#!/bin/bash 
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
# Modified by Mikko Rantalainen 2012-08-09
# Pipe the output to "sort -nk3" to get sorted output
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 )); then
        echo "PID=$PID swapped $SUM KB ($PROGNAME)"
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "Overall swap used: $OVERALL KB"

31 янв 2013 г. | Теги: Linux