Linux KVM and USB devices

Запись создана 29 декабря, 2011

Возникла необходимость прокинуть в KVM-ную виртуалку USB девайсы, токен и флешку.

[root@office ~]# lsusb
Bus 002 Device 003: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102 Flash Drive 
Bus 006 Device 003: ID 23a0:0002
[root@office ~]# virsh
virsh # list  --all
 ID Имя               Статус
----------------------------------
  - WindowsXP             выключен
 
virsh # edit WindowsXP

в блок devices добавляем:

    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x23a0'/>
        <product id='0x0002'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x0930'/>
        <product id='0x6545'/>
      </source>
    </hostdev>

На Centos 6 это к сожалению работать не будет, только один девайс можно прокинуть. По тому что qemu-kvm-0.12.

» Запись из раздела Несортированное | Комментировать

yum thru proxy

Запись создана 15 ноября, 2011

В сети есть ip-pbx, по политике безопасности трафик с него/на него не должен маршрутизироваться за пределы сегмента локальной сети. Но он должен обновляться, ему нужен http доступ наружу. Соотвественно Yum должен ходить через прокси (в том же сегменте сети). По ленивой привычке идем в гугл и читаем тонны бреда про то как правильно экспортировать переменные среды.

Ну чтож за любовь такая у людей, велосипеды изобретать. man yum.conf:

              proxy url to the proxy server that yum should use.
 
              proxy_username username to use for proxy
 
              proxy_password password for this proxy

Прокся в данном случае без авторизации, соответственно добавляю в конфиг /etc/yum.conf

proxy = http://192.168.3.1:3128/

» Запись из раздела Несортированное | 3 комментария

Error: ‘NoneType’ object has no attribute ‘rfind’

Запись создана 16 сентября, 2011

root@d17:~# xm create pan0.vm1.h2.d0.dddddddd.ru.cfg -c
Using config file "/etc/xen/pan0.vm1.h2.d0.ddddddd.ru.cfg".
Error: 'NoneType' object has no attribute 'rfind'

В дебиан лечится установкой xen-qemu-dm-4.0

apt-get install xen-qemu-dm-4.0

» Запись из раздела Xen | 1 комметарий

could not be connected. Failed to find an unused loop device

Запись создана 16 сентября, 2011

При попытке создать новый DomU на Dom0 получил ошибку:

root@d17:~# Error: Device 51718 (vbd) could not be connected. Failed to find an unused loop device

Лечится увеличением loop устройств в системе.

В случае CentOS/RHEL/FedoraCore в файл /etc/modprobe.conf добавляем строку:

options loop max_loop=128

В случае Debian/Ubuntu в файл /etc/modules приводим строку с loop к виду:

loop max_loop=128

В некоторых случаях это не срабатывает, тогда можно передать это как параметр инициализации ядра.
Вот кусок из /boot/grub/menu.lst

title Xen
root (hd0,0)
  kernel /xen.gz
  module /vmlinuz-2.6-xen root=/dev/sda1 ro max_loop=128
  module /initrd.img-2.6.16.29-xen

» Запись из раздела Xen | Комментировать

How to enter to Xen guest

Запись создана 30 августа, 2011

Самый простой способ «войти» в гостевую систему на Xen это

xm console guest-vm

где guest-vm это нужная гостевая ОС, но тут нам понадобится рутовый или иной административный пароль. Если таким богатством не обладаем то есть вариант такой:
1. останавливаем гостевую машину:

xm shutdown -H guest-vm

2. проверяем остановлен ли гость через несколько минут:

xm list

3. Монтируем образ гостевой ОС и чрутимся в него:

mkdir /root/temp/
mount -o loop /mnt/vm_stor/domains/guest-vm/disk.img /root/temp/
mount -o bind /dev /root/temp/dev/
mount -t proc none /root/temp/proc/
chroot /root/temp/

После выполнения работы, например смены рутового пароля на Xen guest, нужно выйти из чрута, размонтировать и стартануть гостя:

umount /root/temp/dev
umount /root/temp/proc
umount /root/temp
xm create guest-vm

Ну и обязательно проконтролировать загрузку:

xm console guest-vm

» Запись из раздела virtualization, Xen | Комментировать

Adaptec 5405 and others on Centos 5

Запись создана 29 июня, 2011

Есть такой популярный контроллер Adaptec 5405, мы его ставим в сервера в больших количествах, соотвественно нужно мониторить состояние массивов на серверах.

Для этого есть nagios и zabbix, а чтобы наши мониторинги могли узнавать статус массивов используем утилиту arcconf от производителя Adaptec.

Покажу на примере CentOS 5.6 x86_64 установку arcconf

http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v7_00_18781.tgz
tar zxf asm_linux_x64_v7_00_18781.tgz 
mv cmdline/arcconf /bin/

Если вам нужен Adaptec Storage Manager agent то можете поставить пакетом всё что поставляет Adaptec

 rpm -Uvh manager/StorMan-7.00.x86_64.rpm

Ну и проверить не забудьте:

arcconf GETCONFIG 1 AD
Controllers found: 1
----------------------------------------------------------------------
Controller information
----------------------------------------------------------------------
   Controller Status                        : Optimal
   Channel description                      : SAS/SATA
   Controller Model                         : Adaptec 5405
   Controller Serial Number                 : 0D29116C7A3
   Physical Slot                            : 1
   Temperature                              : 67 C/ 152 F (Normal)
   Installed memory                         : 256 MB
   Copyback                                 : Disabled
   Background consistency check             : Disabled
   Automatic Failover                       : Enabled
   Global task priority                     : High
   Performance Mode                         : Default/Dynamic
   Stayawake period                         : Disabled
   Spinup limit internal drives             : 0
   Spinup limit external drives             : 0
   Defunct disk drive count                 : 0
   Logical devices/Failed/Degraded          : 1/0/0
   SSDs assigned to MaxIQ Cache pool        : 0
   Maximum SSDs allowed in MaxIQ Cache pool : 8
   MaxIQ Read Cache Pool Size               : 0.000 GB
   MaxIQ cache fetch rate                   : 0
   MaxIQ Cache Read, Write Balance Factor   : 3,1
   NCQ status                               : Enabled
   Statistics data collection mode          : Enabled
   --------------------------------------------------------
   Controller Version Information
   --------------------------------------------------------
   BIOS                                     : 5.2-0 (17899)
   Firmware                                 : 5.2-0 (17899)
   Driver                                   : 1.1-5 (24702)
   Boot Flash                               : 5.2-0 (17899)
   --------------------------------------------------------
   Controller Battery Information
   --------------------------------------------------------
   Status                                   : Not Installed

версии под другие платформы и ОС доступны на официальном сайте

Данная инструкция также верна для:
Adaptec RAID 2045
Adaptec RAID 2405
Adaptec RAID 2405Q
Adaptec RAID 2805
Adaptec RAID 5085
Adaptec RAID 51245
Adaptec RAID 51645
Adaptec RAID 52445
Adaptec RAID 5405
Adaptec RAID 5405Z
Adaptec RAID 5445
Adaptec RAID 5445Z
Adaptec RAID 5805
Adaptec RAID 5805Q
Adaptec RAID 5805Z
Adaptec RAID 5805ZQ

» Запись из раздела Adaptec, CentOS Linux | 1 комметарий

Apache ServerAlias limit

Запись создана 19 июня, 2011

Звонит техподдержка, говорит что на одном из вебсерверов лежит апач. Ну дело не хитрое, рестарт и смотрим error_log. Тишина.. всмысле вообще тишина ничего нет в логе. Ну делаем Loglevel debug и снова рестарт и снова в логе тишина и пара warn-ов не относящихся к делу.

Опытным путем выяснил что апач мрет на загрузке конфига с виртуалхостами, виртуалхостов на сервере чуть больше 3000, какой косячит? Как его найти если в логах ничего нет? strace ни на какие мысли не на талкивает.

Но специфика сервера такова что каждый вхост в отдельном конфиге, потом эти конфиги парсятся, правятся и сливаются в один файл. Вобщем переношу все конфиги вхостов в /root/tmp и по 100 штук начинаю возвращать на место и рестартить апач. Таким образом нахожу ОДНУ паршивую овцу. Лезу в конфиг и падаю со стула.

Для одного домена прописано 530 алиасов, у того же клиента смотрю другие домены, на втором прописано еще 370 алиасов. Судя по всему лимит у апача 512 алиасов, потом смерть.

И блять молчаливая смерть, ни строчки в логи!!

Вобщем так можно хостерам гадить, регаешься на самый дешевый тариф и набиваешь 600 алиасов. Всё апачу пездос.

» Запись из раздела Apache | 3 комментария

Remove UTF8 BOM under linux

Запись создана 15 июня, 2011

После переноса файлов с фряхи на linux простым rsync в текстовых файлах появился UTF-8 BOM, это такой маркер типа UTF (легко гуглится кому интересно). По факту это в начало вайла добавляется HEX символы: EF BB BF. Проблема выражается в том что кирилицу в файлах кривит и косит.

Переходим в каталог который надо чинить и правим:

find . -type f \( -name '*.css' -o -name '*.js' -o -name '*.txt' -o -name '*.php' -o -name '*.htm' -o -name '*.html' \) -print0 | xargs -0 grep -l `printf '^\xef\xbb\xbf'` | xargs sed -i '1 s/^\xef\xbb\xbf//'

» Запись из раздела Несортированное | Комментировать

Linux UPnP

Запись создана 8 июня, 2011

Для того чтобы клиенты могли прозрачно открывать порты на шлюзе, был разработан набор протоколв Universal Plug and Play (UPnP), например для того чтобы можно было раздавать торренты.

На днях я снял дома старый добрый Linksys WRT54G, теперь раздачей интернета занимается linux-овая машинка. Для раздачи торррентов например, нужно разрешить соединения внутрь сети. Для этого можно пробросить разные порты на разные машины, и в случае добавления клиентов/машин это придется делать вручную. Это не самый удобный спопосб, но можно использовать UPnP который будет сам пробрасывать нужные порты через iptables.

Установка:

sudo apt-get install linux-igd -y

Настраиваем:

cat /etc/default/linux-igd
# External interface name.  If undefined then upnpd will not be started.
EXTIFACE=ppp0
 
# Internal interface name.  If undefined then upnpd will not be started.
INTIFACE=eth0

Добавляем правила в iptables:

iptables -N UPNP
iptables -N UPNP iptables -A FORWARD -j UPNP
 
iptables-save > /etc/iptables.up.rules

Запускаем upnpd

/etc/init.d/linux-igd start

Перезапускаем, например, торрент клиент с включенным UPnP и видим появившиеся правила в iptables:

-A FORWARD -d 192.168.1.106/32 -p tcp -m tcp --dport 51413 -j ACCEPT 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 192.168.1.106:51413

На этом всё.

» Запись из раздела Debian | 2 комментария

Booting ms dos via PXE to update bios

Запись создана 31 мая, 2011

Для обновления BIOS на сервре как правило нужно загрузиться с дискеты с MS DOS и запустить утилиту обновления, в современном мире не так просто найти FDD, да и дискету сходу не удалось найти.

Но в it инфраструктуре как правило уже развернут PXE сервер для обслуживания серверов или устновки операционной системы, собственно им и воспользуемся.

apt-get install dosfstools gettext build-essential
wget "http://downloads.sourceforge.net/project/ms-sys/ms-sys%20stable/2.2.0/ms-sys-2.2.0.tar.gz?use_mirror=citylan" -O ms-sys-2.2.0.tar.gz
tar zxf ms-sys-2.2.0.tar.gz && cd ms-sys-2.2.0/
make
cp bin/ms-sys /usr/bin/
cd .. && rm -rf ms-sys-2.2.0*
dd if=/dev/zero of=floppy.img bs=1024 count=20000
mkdosfs floppy.img
ms-sys -1 -f floppy.img
mount -o loop floppy.img /mnt/
wget http://itblog.su/downloads/W98SE_R.img
mount -o loop W98SE_R.img /tmp/dos
cp /tmp/dos/* /mnt/ 
umount /tmp/dos && rm -rf /tmp/dos
mv X8DTU_204.ima /mnt/
wget ftp://ftp.supermicro.com/utility/IPMI%20FW%20flash%20tools/AMI/DOS%202.4.zip
unzip  DOS\ 2.4.zip 
mv DOS/yafukcs.exe /mnt/
rm -rf DOS*
umount /mnt
mv floppy.img /tftpboot/
 
cat >> /tftpboot/pxelinux.cfg/default <<EOF
label dos
    menu label dos
   kernel memdisk
   append initrd=floppy.img
EOF

» Запись из раздела Несортированное | 2 комментария

« предыдущая страницаследующая страница »