Как подключить swap в Linux…

…по-быстренькому.

С такой задачей я часто сталкиваюсь при тестировании vps — часто не подключен раздел подкачки и приходится подключать его вручную.

А подключить swap очень просто. Это не обязательно может быть отдельный раздел. Все действия делаем от root’а (или `sudo`, если трусим 😉 ). В случае, если подключаем файл, то сделаем сначала файл нужного раздела:

# dd if=/dev/zero of=/swapfile bs=1024 count=512k

bs — раздмер блока,
count — счетчик. Тут мы создали полугиговый файл.

Размечаем файл под раздел подкачки:

# mkswap /swapfile

Теперь включаем его:

# swapon /swapfile

Проверяем, включился ли:

# swapon -s

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

echo 10 > /proc/sys/vm/swappiness

Если надо, вписываем его в fstab:

# echo ‘/swapfile none swap sw 0 0’ >> /etc/fstab

Если файл делали не от пользователя root, то правим владельца и права доступа к файлу:

# chown root:root /swapfile
# chmod 0600 /swapfile

Собственно и все. Вместо /swapfile может быть как раздел, так и файл в любом месте.

oom-killer на страже сервера

Полезная штука этот oom-killer, если кто не знал. Как только какой-то процесс отъедает много памяти, он, oom-killer, его прибивает. Когда претендентов много, выбирает самого жирного.

Вот и на одном моем сервере в виртуальном хозяйстве начал помирать то Apache2, то MySQL. ОЗУ на этом виртуальном сервере всего 1GB, Swap тоже 1 гиг. Собственно, из-за Apache, как показали логи atop’a, память и кончалась. Читать далее «oom-killer на страже сервера»

Небольшая пауза

Привет всем. Может кто и заметил, но бложек (а вместе с ним и weeg.ru, плюс и другие бложики) провалялся почти две недели в дауне. Нет, что-то фатальное с ним не случилось, просто чуток поломались разделы в системе на виртуалочке, коей у меня выступает FreeBSD.

freebsd

Банальный `fsck_ufs -y СЛАЙС` для каждого слайса справился с этим на ура. Собственно, ура, товарищи.

ps. ну и если кто спросит почему так долго не заводил виртуалку, если все так просто, отвечу — некогда и лень.

pps. можно было, думаю, сделать все и одной командой типа:
`fsck_ufs -y /dev/da0s1[a..e]`

Роутинг с помощью PF на FreeBSD

Последнее время занимался не только облаками на Xen Cloud Platform, но и регистрацией своей автономной системы (AS) и приобретением пула адресов (купил /23 сеть). Все бы хорошо, но вышестоящий провайдер — Мультима — что-то тянет время и уже неделю как не может мне предоставить все что надо для установки bgp-сессии и начала анонсирования своей сетки.

Но перед этим прокачал скилл владения фаерволом PF на FreeBSD. Поясню.

Организация сети у меня в организации непростая и я использую двух провайдеров для доступа в интернет. Одна сеть (размером /25) принадлежит одному провайдеру и пускать ее наружу через второго — Мультиму — никто не будет. Однако анонсировать свою новую сеть буду через эту самую Мультиму, поэтому дефаулт шлюз будет именно туда.

Роутить по источнику FreeBSD не умеет, а вот заворачивать трафик умеет PF, поэтому меня спасло вот такие кренделя:

pass out quick on $ext0_if route-to ($tun0_if $tun0_gw) inet proto { tcp, udp, icmp, 41, gre } from $mini_lan to !(self) keep state
pass in quick on $tun0_if reply-to ($tun0_if $tun0_gw)
pass in quick on $ext0_if reply-to ($ext0_if $ext0_gw)

где $ext0_if смотрит в мультиму, $tun0_if — до второго провайдера, о шлюзах догадались уже сами, $mini_lan — та самая маленькая, /25 сетка.

Буду рад, если это кому-нибудь пригодиться.

PS. Все-таки по анализу pftop работает другое правило:

pass in quick on $int0_if route-to ($tun0_if $tun0_gw) inet proto { tcp, udp, icmp, 41, gre } from $mini_lan to !(self) keep state

Программное зеркало RAID1 в FreeBSD

Не ZFS’ом единым живы программные зеркала в FreeBSD. Даже больше — zfs достаточно специфичное решение, которое часто и не требуется, но не смотря на это, требуется сделать RAID1 программными средствами. Штатный инструмент в FreeBSD для этого — gmirror.

Пользоваться проще простого.

# sysctl kern.geom.debugflags=17
# gmirror label -vb round-robin gm0 /dev/ad4
Metadata value stored on /dev/ad4.
Done.
# gmirror load
# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
# ee /etc/fstab

— тут меняем ad4 на gm0
# shutdown -r now
# gmirror insert gm0 /dev/ad8
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
ad8 (92%)

— ждем когда Статус сменится на «COMPLETE» и все — система на програмном зеркале. Даже если умрет один из дисков — все будет не фатально. Меняем мертвый диск и вставляем его в наш массив:

# gmirror forget gm0
# gmirror insert gm0 /dev/ad8

Ну и наблюдаем в ‘gmirror status’ как оно ребилдится.

Mac OS X — десять лет

Причем сразу напишу, что читать следует не Мак Ос Икс, а Мак Ос Тэн. Типа десятка.

24 марта 2001 года был представлен релиз этой операционной системы для компьютеров компании Apple. Не буду холиварить, просто покажу скрины системы от 10.0 до 10.7. Читать далее «Mac OS X — десять лет»