FastNetMon

Wednesday, 29 April 2009

Генерация UUID и MAC для Xen DomU

Сабж. В конфиг файлах Xen есть два параметра, которые я не совсем понимал как генерировать.

uuid = "31714e2e-4433-4163-d9e9-9480d1a619c9"
vif = [ "mac=00:16:3e:60:ce:6d,bridge=xenbr0" ]


Из документации по Xen выяснилось, что uuid генерируется программой uuidgen.
А вот как сгенерировать уникальный в пределах системы Mac ? Для этого есть спецовый скрипт: http://www.easyvmx.com/software/easymac.sh запускаем так: ./easymac.sh xen и на выходе получаем МАК адрес :)

Monday, 27 April 2009

Как скачать файл по sftp ?

Вот так:
sftp root@ip.ad.dr.es:/home/centos53_xen_domu.tar.gz
Преимущество sftp в том, что для работы ему достаточно только ssh доступа :)

Как забэкапить целый раздел?

Леххко!
dd if=/dev/hosting_vps_disks/disk_backup_xen1 | gzip > backup11_apr.gz

Saturday, 25 April 2009

Речь Махмуда Ахмадинежада

Уважаемые читатели! Я, конечно, понимаю, что блог мой сугубо технически ориентированный, но я попросту не могу не дать ссылку на потрясающие слова Махмуда Ахмадинежада, который им были высказаны на конференции по расизму, прошедшей не так давно в Женеве. Чем они меня так задели? Тем, что это, пожалуй, первое публичное выступление политика за последние десятки лет, где все названо СВОИМИ именами, а не сдобрено кучей файльша и лжи. Вот ссылка, очень рекомендую прочесть всем мыслящим людям: http://khazin.livejournal.com/10015.html

Расширенный мониторинг подсистемы ввода-вывода в Linux

Давно заворачиваюсь идеей, как же посмотреть и измерить нагрузку на дисковую систему в Linux? Вот прочитал про iostat, она находится в пакете со следующим описанием "sysstat.x86_64 : The sar and iostat system monitoring commands", ставим:
yum install sysstat


Запускаем: iostat и видим табличку с кучей метрик, из которых самой важной, пожалуй, является следующая:

tps
Indicate the number of transfers per second that were issued to the
device. A transfer is an I/O request to the device. Multiple logical
requests can be combined into a single I/O request to the device. A
transfer is of indeterminate size.

P.S. попутно убедился, что под openvz iostat не работает: http://forum.openvz.org/index.php?t=msg&goto=25749&

Кратенькая шпаргалка по установке Centos 53 в DomU через virt-install

Вот примерно так :)
virt-install
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no
What is the name of your virtual machine? isp_primary_dns
How much RAM should be allocated (in megabytes)? 512
What would you like to use as the disk (file path)? /dev/hosting_vps_disks/isp_primary_dns
Would you like to enable graphics support? (yes or no) no
What is the install location? http://mirror.yandex.ru/centos/5.3/os/x86_64/


Starting install...

Friday, 24 April 2009

Как примонтировать определенный раздел с дампа диска?

Сабж довольно странный и я честно не знаю, как это "называется правильно".

Задача следующая: есть XEN DomU, у которого в качестве жесткого диска(не раздела) указан LVM том /dev/hosting_vps_disks/isp_primary_dns, имеющий следующую структуру:

fdisk -l /dev/hosting_vps_disks/isp_primary_dns
Disk /dev/hosting_vps_disks/isp_primary_dns: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hosting_vps_disks/isp_primary_dns1 * 1 652 5237158+ 83 Linux


Надо примонтировать раздел как папку /dev/hosting_vps_disks/isp_primary_dns1 :)


Как это сделать?
1. Выключаем виртуальную машину, использующую этот раздел: xm destroy isp_primary_dns
2. Создаём точку монтирования mkdir /mnt/isp_primary_dns1
3. Идём в выдачу fdisk и считаем смещение: perl -e 'print 63 * 512 * 1' ответ: 32256 (63 -- sectors/track, 1 -- Start, 512 тоже понимаем откуда). Если хотите более подробного объяснения, то прошу в статью, указанную в самом низу -- там все описано просто суперски, за что большое спасибо автору.
4. Используя полученное смещение, монтируем диск: mount -o loop,offset=32256 /dev/hosting_vps_disks/isp_primary_dns /mnt/isp_primary_dns1/
5. Радуемся результату:

cd /mnt/isp_primary_dns1/
[root@host1 isp_primary_dns1]# ls -la
total 184
drwxr-xr-x 22 root root 4096 Apr 17 03:13 .
drwxr-xr-x 4 root root 4096 Apr 25 05:55 ..
-rw-r--r-- 1 root root 0 Apr 17 03:13 .autofsck
-rw-r--r-- 1 root root 0 Apr 17 03:13 .autorelabel
drwxr-xr-x 2 root root 4096 Apr 17 03:06 bin
drwxr-xr-x 3 root root 4096 Apr 17 03:11 boot
drwxr-xr-x 2 root root 4096 Apr 17 03:04 dev
drwxr-xr-x 46 root root 4096 Apr 17 04:43 etc
drwxr-xr-x 2 root root 4096 Mar 11 20:56 home
drwxr-xr-x 10 root root 4096 Apr 17 03:06 lib
drwxr-xr-x 7 root root 4096 Apr 17 03:11 lib64
drwx------ 2 root root 16384 Apr 17 03:04 lost+found
drwxr-xr-x 2 root root 4096 Mar 11 20:56 media
drwxr-xr-x 2 root root 4096 Mar 11 20:56 mnt
drwxr-xr-x 2 root root 4096 Mar 11 20:56 opt
drwxr-xr-x 2 root root 4096 Apr 17 03:04 proc
drwxr-x--- 2 root root 4096 Apr 17 03:28 root
drwxr-xr-x 2 root root 4096 Apr 17 03:11 sbin
drwxr-xr-x 2 root root 4096 Apr 17 03:04 selinux
drwxr-xr-x 2 root root 4096 Mar 11 20:56 srv
drwxr-xr-x 2 root root 4096 Apr 17 03:04 sys
drwxrwxrwt 3 root root 4096 Apr 17 03:19 tmp
drwxr-xr-x 14 root root 4096 Apr 17 03:05 usr
drwxr-xr-x 19 root root 4096 Apr 17 03:19 var


источник идей: http://forum.opennet.ru/tips/info/1687.shtml?skip=40

UPDATE:

А есть намного более простой метод определения смещения:

parted /dev/hosting_vps_disks/isp_primary_dns
GNU Parted 1.8.1
Using /dev/mapper/hosting_vps_disks-isp_primary_dns
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) print

Model: Linux device-mapper (dm)
Disk /dev/mapper/hosting_vps_disks-isp_primary_dns: 5368709119B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32256B 5362882559B 5362850304B primary ext3 boot

(parted)



основано на: http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux

Установка Perl модулей со свалившимися тестами

Нередко при установке Perl модулей с CPAN можно увидеть следующее:
Failed 2/13 test scripts

и установка на этом прекращается.

Что это означает? Это означает, что автор либо забыл исправить тесты, внеся новую функционалньость, либо в коде на самом деле баг, чаще всего все же первое (баг в тестах) и можно не особо беспокоясь поставить модуль насильно, для этого:

sudo cpan # запускаем оболочку CPAN
force install DBIx::Class::Schema::Loader


Если же вы довольно хорошо знаете Перл, то очень хорошим тоном будет сообщить о падении тестов для модуля через rt.cpan.org и в идеале прислать патч авторам, исправляющий косяк :)

Xen, диски и надежность

Вот недавно писал мануал, как ставить Xen DomU через virt-install и предлагал ставить в LVM раздел как в блочное устройство (т.е. создавать таблицу разделов, там создавать разделы и прочее), а не как в обычный раздел. Как бэ проблема-то фигня, но сразу возникает ряд косяков -- очень неудобно монтировать, когда в дамп сунут целый диск, а не раздел (да, да, надо считать offset и так криво монтировать) + неудобство проверки тулзами типа fsck + неудобство копирования, нельзя просто легко примонтировать бэкап раздел и слить файлы, надо юзать dd и перетаскивать весь диск.

Т.о. сейчас у меня две машинки пойдут в реинсталл "как правильно", дада, за тупость и недальновидность мышления надо платить рутиной.

Да, кстати, вот обалденный мануал: http://wiki.centos.org/HowTos/Xen/InstallingCentOSDomU но он тоже "не как надо" :(

Tuesday, 21 April 2009

Zabbix ошибки

ERROR at home.c:149: Unable to find or create ELinks config directory. Please check if you have $HOME variable set correctly and if you have write permission to your home directory.


Думал, поможет sudo yum install elinks, но нет -- не помогло.


И вот такое: Can't find shared memory for collector. [No such file or directory]

У кого есть идеи?

Заархировать папку в zip? Проще простого!

zip -r backup.zip httpdocs/

Friday, 17 April 2009

Исправление [error] [client ::1] Directory index forbidden by Options directive

sudo tail -f /var/log/httpd/error_log
[Fri Apr 17 13:57:01 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:02 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:03 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:04 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:05 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:06 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:07 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/
[Fri Apr 17 13:57:08 2009] [error] [client ::1] Directory index forbidden by Options directive: /var/www/html/


Исправляется очень просто:
touch /var/www/html/index.html
или просто напишем там то-нибудь.

Thursday, 16 April 2009

Способ освободить парочку гигов на сервере с Centos

sudo yum clean all

Получить список пакетов, доступных к апдейту

В Центос это делается очень легко:
sudo yum check-update
В идеале засунуть в крон чекер, который при наличие апдейтов кидает мессадж на мыло админу.

Thursday, 9 April 2009

Краткий мануал по LVM2

Допустим, создадим LVM на логическом разделе sda3.

В терминах LVM сейчас нам надо создать "Physical volume", т.е. диск / раздел, на котором будет жить LVM (следует заметить, что ЛВМ может жить на большом количестве разделов / дисков).

pvcreate /dev/sda3 (инициализируем логический раздели или целый диск для использования в LVM)
pvscan (должен выдать список наших дисков, доступных для использования в LVM)
PV /dev/sda5 lvm2 [136,90 GB]
Total: 1 [136,90 GB] / in use: 0 [0 ] / in no VG: 1 [136,90 GB]

Теперь создаём Volume Group.
vgcreate hosting_vps_disks /dev/sda3 (создаём группы томов)
# Volume group "hosting_vps_disks" successfully created
pvscan (теперь наш раздел в группе томов)
# PV /dev/sda3 VG hosting_vps_disks lvm2 [125.38 GB / 125.38 GB free]
# Total: 1 [125.38 GB] / in use: 1 [125.38 GB] / in no VG: 0 [0 ]


vgdisplay # смотрим существующие группы томов
--- Volume group ---
VG Name hosting_vps_disks
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 125.38 GB
PE Size 4.00 MB
Total PE 32096
Alloc PE / Size 0 / 0
Free PE / Size 32096 / 125.38 GB
VG UUID LtFwMI-UAb3-ow74-VvDs-Zd0U-Gy4E-vhnbAB
Т.е. иными словами, сейчас у нас есть кусок дискового пространства, слитый из несколькиз физически х разделов (в нашем случае правда он только один, но не суть), на котором мы уже будем создавть наши рабочие рабочие разделы. Вообще, группа томов ЛВМ очень близка к "немного необычному" жесткому диску, которые позволяет несколько жестких дисков сливать воедино и уже на базе

Ну а теперь поверх всего этого чуда создадим раздел, который будем юзать нашей впской
lvcreate -i3 -I4 -L10G -nxenhosting101 hosting_vps_disks # размер блока 4байта, а -i3 я пока не понял, вроде, число разбиений.
У меня было одно физическое устройство и при попытке создать с -i3 получил отлуп:
"Number of stripes (3) must not exceed number of physical volumes (1)"
Убрал параметр -i и всё заработало.

Но выдало:
"Ignoring stripesize argument with single stripe Logical volume "xenhosting101" created", надо разбираца, не понимаю я этот stripesize.

посмотрим результат нашей работы: lvdisplay

--- Logical volume ---
LV Name /dev/hosting_vps_disks/xenhosting101
VG Name hosting_vps_disks
LV UUID qSHcGv-y4w2-Eb1x-cAnu-MpHC-3h0h-RYPjLY
LV Write Access read/write
LV Status available
# open 0
LV Size 110,00 GB
Current LE 28160
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0



Ну вот и всё, у нас появилось новое блочное устройство: /dev/hosting_vps_disks/xenhosting101 ! Ура, ура, ура!

Люблю линукс, теперь тупо указываем наш LVM раздел как "диск" нового XEN домена:
virt-install
What is the name of your virtual machine? xenhosting2
How much RAM should be allocated (in megabytes)? 1024
What would you like to use as the disk (file path)? /dev/hosting_vps_disks/xenhosting101
Would you like to enable graphics support? (yes or no) no
What is the install location? http://mirror.yandex.ru/centos/5.3/os/x86_64/

Ну и всо =))

Мелкие ремарки.
[-A|--autobackup {y|n}] -- Whether or not to metadata should be backed up automatically after a change. You are strongly advised not to disable this! See vgcfgbackup (8).

[-c|--chunksize] -- это размер поблочного разбиения, но чего именно, я так и не понял :/

Добавляем бэкап раздел:
lvcreate -L5G -s -n disk_backup_xen1 /dev/hosting_vps_disks/xenhosting101
и снимаем бэкапы наживую)
потом удаляем бэкап раздел: lvremove /dev/hosting_vps_disks/disk_backup_xen1

Более удобно и безопасно делать вот так:
mount -o ro /dev/hosting_vps_disks/disk_backup_server1 /mnt/backup/

Просто сбэкапит диск так:
dd if=/dev/vps_disks/disk_backup | gzip > /backup/disk_archive.gzip

Источник: http://tldp.org/HOWTO/LVM-HOWTO/recipethreescsistripe.html
просто хороший мануал по командам Линукса: http://www.pixelbeat.org/cmdline_ru_RU.html