Игорь Олемской — практические заметки по системному администрированию Linux CentOS

Архив рубрики ‘Мои записи’

Hetzner — создаем диск на 9 Tb под CentOS

14 комментариев

В Hetzner существует возможность аренды серверов с большими дисками по 3 Tb. Ниже пойдет речь о том, как запустить сервер с 4 x 3 Tb Software RAID-5 и создать диск размером 9 Tb.

Заказываем RESCUE-mode из панели управления Hetzner.
Заходим по SSH и запускаем установку ОС из образа:

installimage

Выбираем CentOS 6 64bit, а в файле конфигурации прописываем следующие параметры:

SWRAIDLEVEL 1
PART /grub ext3 128M
PART swap swap 8G
PART / ext3 30G
PART /vz ext4 all

После установки запрашиваем еще раз в панели управления Hetzner RESCUE-mode и запускаем

reboot

После перезагрузки удаляем ненужные массивы:

mdadm -S /dev/md0
mdadm -S /dev/md3

mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdd1
mdadm --zero-superblock /dev/sda5
mdadm --zero-superblock /dev/sdb5
mdadm --zero-superblock /dev/sdc5
mdadm --zero-superblock /dev/sdd5

Конвертируем partition table из MSDOS в GPT (запускаем и нажимаем «w», после чего подтверждаем):

gdisk /dev/sda
gdisk /dev/sdb
gdisk /dev/sdd
gdisk /dev/sdc

Задаем загрузочный раздел для GRUB:

parted /dev/sda set 1 bios_grub on
parted /dev/sdb set 1 bios_grub on
parted /dev/sdc set 1 bios_grub on
parted /dev/sdd set 1 bios_grub on

Дублируем таблицу партиций из GPT в MSDOS:

apt-get install gptsync
gptsync /dev/sda
gptsync /dev/sdb
gptsync /dev/sdc
gptsync /dev/sdd

Загружаем GRUB и перезагружаем сервер:

mount /dev/md2 /mnt
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
chroot /mnt
grub-install /dev/sda
grub-install /dev/sdb
grub-install /dev/sdd
grub-install /dev/sdc

Удаляем из /etc/fstab следующие строки:

/dev/md0 /grub ext3 defaults 0 0

И перезагружаем:

reboot

Устанавливаем parted:

yum install -y parted

Удаляем маленькие партиции, создаем большие и перезагружаем сервер (чтобы перечиталась таблица партиций):

parted /dev/sda rm 5
parted /dev/sdb rm 5
parted /dev/sdd rm 5
parted /dev/sdc rm 5

parted /dev/sda mkpart RAID ext4 40.9GB 2960GB
parted /dev/sdb mkpart RAID ext4 40.9GB 2960GB
parted /dev/sdd mkpart RAID ext4 40.9GB 2960GB
parted /dev/sdc mkpart RAID ext4 40.9GB 2960GB

parted /dev/sda set 4 raid on
parted /dev/sdb set 4 raid on
parted /dev/sdd set 4 raid on
parted /dev/sdc set 4 raid on
reboot

И, после перезагрузки, заново создаем RAID-5 с использованием всех 4-х дисков (ключи «--spare-devices=0» и «--force» принуждают mdadm использовать все 4 диска для RAID-5, в ином случае 4-й диск становится резервным):

mdadm --create /dev/md3 --raid-devices=4 --spare-devices=0 --force --level=5 /dev/sda4 /dev/sdb4 /dev/sdc4 /dev/sdd4

Записываем в /etc/mdadm.conf новые данные о массивах. Получаем новый вывод командой

mdadm --examine --scan

и копируем его в /etc/mdadm.conf.

Дальше проще всего обновить ядро. 🙂
При обновлении ядра, создается новый initrd с правильным mdadm.conf, что исключает появление /dev/md127 вместо /dev/md3.
Для примера, устанавливаем vzkernel из репозитория openvz (этот файл можно положить в /etc/yum.repos.d/). И перезагружаем сервер.

yum install vzkernel
reboot

Создаем файловую систему

mkfs.ext4 -m0 /dev/md3

И дожидаемся, когда синхронизируется рейд:

watch cat /proc/mdstat

12.01.2011

Написал Игорь Олемской

Рубрики: Мои записи

Как добавить PostgreSQL пользователя только для чтения

Комментариев нет

http://www.ruizs.org/archives/89

14.11.2010

Написал Игорь Олемской

Рубрики: Мои записи

Как определить, что съело всю память?

Комментариев нет

Устанавливаем valgrind:

yum install valgrind

Запускаем на примере apache:

valgrind --tool=memcheck --num-callers=30 --log-file=apache.log --leak-check=full --trace-children=yes /usr/sbin/httpd

03.11.2010

Написал Игорь Олемской

Рубрики: Мои записи

Установка Linux IC 2.1-драйверов для Hyper-V

Комментариев нет

Драйвер доступен по ссылке: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551


Описание установки: http://howtoforge.com/installing-linux-integration-services-v2.1-hyper-v-r2-on-centos-5


Привязка к DKMS (автоматическая установка модулей после обновления ядра): http://support.microsoft.com/kb/2387594

01.10.2010

Написал Игорь Олемской

Рубрики: Мои записи

Отличная книга по настройке, оптимизации и масштабированию PostgreSQL

Комментариев нет

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

http://postgresql.leopard.in.ua/

16.08.2010

Написал Игорь Олемской

Рубрики: Мои записи

Хинты по работе с MegaCLI-рейдом (DELL)

Комментариев нет

http://bigkernel.com/tag/megacli/

22.07.2010

Написал Игорь Олемской

Рубрики: Мои записи

ip_conntrack perfomance

Комментариев нет

Интересный комментарий из статьи http://rackerhacker.com/2008/01/24/ip_conntrack-table-full-dropping-packet/

Some readers may be interested to know what ip_conntrack is in the first place, and why it fills up. If you run an iptables firewall, and have rules that act upon the state of a packet, then the kernel uses ip_conntrack to keep track of what state what connections are in so that the firewall rule logic can be applied against them. If you have a system that's getting a lot of network activity (high rates of connections, lots of concurrent connections, etc) then the table will accumulate entries.

The entries remain until an RST packet is sent from the original IP address. If you have a flaky network somewhere between you, and the clients accessing your server, it can cause the RST packets to be dropped due to the packet loss, and leave orphaned entries in your ip_conntrack table. This can also happen if you have a malfunctioning switch or NIC card... not necessarily a routing problem out on the internet somewhere.

Typically when I've seen this trouble crop up is when a server is the target of a DDoS attack. Filling up the ip_conntrack table is a relatively easy way to knock a server off line, and attackers know this.

As Major suggested, you can get short term relief by increasing the size of the table. However, these entries are held in memory by the kernel. The bigger you make the table, the more memory it will consume. That memory could be used by your server to serve requests if you really don't need the stateful firewall capability. Don't waste resources on this feature if you really don't need it.

Another option to consider is turning OFF iptables rules that use ip_conntrack so the state able is not used at all. Anything with «-m state» or «-t nat» can be turned off. If you want to just flush all your iptables rules you can do an «iptables -P» to set a default allow policy and «iptables -F» to flush all the rules. On an RHEL or CentOS system you can just do «service iptables stop».

Once iptables is no longer using ip_conntrack, you can reclaim the memory the table was using by unloading the related kernel modules.

rmmod ipt_MASQUERADE
rmmod iptable_nat
rmmod ipt_state
rmmod ip_conntrack

Then you will have an empty ip_conntrack that will stay empty. I mention this because a lot of sysadmins have hordes of iptables rules installed as a matter of course, and don't recognize the downside of having them present. You can still use iptables, but to avoid the use of ip_conntrack simply don't use rules based on stateful logic.

18.06.2010

Написал Игорь Олемской

Рубрики: Мои записи

Логирование медленных запросов Apache

Комментариев нет

Для логирования медленных запросов Apache очень удобно использовать модуль mod_log_slow, домашняя страница которого находится по адресу http://code.google.com/p/modlogslow/

Для установки модуля под CentOS 5 64bit можно воспользоваться репозиторием Southbridge:

yum install modlogslow

или установить пакет по прямой ссылке:

rpm -ihv http://rpms.southbridge.ru/stable/x86_64/modlogslow-1.0.6-1.southbridge.x86_64.rpm

Пример конфигурации можно посмотреть в файле /etc/httpd/conf.d/logslow.conf

13.03.2010

Написал Игорь Олемской

Как удобно копировать файлы и папки между серверами, соблюдая доступы

Комментариев нет

Это удобнее всего сделать используя tar через ssh:

tar zcvf - /files | ssh root@192.168.0.1 "cat > /files.tar.gz"

03.02.2010

Написал Игорь Олемской

Рубрики: Мои записи

Теги: , , ,

Как создать партицию больше 2ТБ

Комментариев нет

Хорошая статья на эту тему: http://www.cyberciti.biz/tips/fdisk-unable-to-create-partition-greater-2tb.html

И еще: http://blog.gtuhl.com/2007/09/18/big-ext3-partitions-in-opensuse-102/

17.12.2009

Написал Игорь Олемской

Рубрики: Мои записи

Теги: , , , ,