2014-07-22

Ну мля чем еще админу заняться???

Принес директор ноут, что-то греется, говорит. И не важно, что у нас нет никого, кто имеет опыт сборки разборки - надо сделать.

Порыл инет, нашел инструкции:

1. http://ander.su/repair/article/15/1
 2. http://people.overclockers.ru/vGamBIT/17624/Chistka_ot_pyli_i_zamena_termopasty_na_Acer_Aspire_5750G/
3. http://draber.pp.ua/?p=910
4. http://habrahabr.ru/post/140120/

Вооружившись отвертками, все сделал. Разбирать пришлось, правда, 2 раза.
Собственно и не писал бы, но вдруг опять тот же ноут принесут, а у меня ссылки остались :)


Читать далее

2014-05-19

XenServer + NTP = unreal offset!!! Постоянный рассинхрон времени ВМ на XenServer 6.2

Имеем проблему - виртуалки на XenServer постоянно сбиваются по времени. Не все, но некоторые.

На XenServer настроен ntp, он работает, время корректное. Каждая ВМ настроена на синхронизацию времени с гипервизором и с NTP сервером. Но несмотря на это периодически время сбивается. Если NTP пнешь руками - ситуация исправляется, но ненадолго. До смешного - передернул NTP, время исправилось, через 15 секунд опять сбилось на 1-2 минуты.

В предыдущем посте писал насчет проверки через nagios plugin check_ntp_time. Все что там написано - актуально. К этому добавляем следующее.

В /etc/sysctl.conf добавляем строку

xen.independent_wallclock = 1

и перезапускаем хост.

Есть подозрение, что поймут эту инструкцию только хосты, где работают XenServer Tools, но и то гуд.

Читать далее

2014-05-08

ntp, nagios check_ntp_time, версии, заковыки, проблемы...

Начались у нас в конторе проблемы с синхронизацией времени. Начались, а узнали мы об этом, когда нас из-за этих проблем пришли бить больно. Нас громко сказано - меня.

А почему узнали уже в момент отгребания - а потому что nagios ничего, падла, нам не сказал, чтоб наше внимание привлекло. Все горело зелененьким, приятненьким таким цветом.

А после снятия побоев после отгребания после того как nagios ничего не сказал после того как проблемы уже были херзнаетсколько времени, так вот после всего этого оказалось, что в некоторых случаях плагин check_ntp_time статус показывает так (горит зеленым):

NTP OK: Offset 0.0008825864061 secs

, а в некоторых так(и сука тоже горит зеленым):

NTP OK: Offset unknown

Ну я же не смотрю на зеленое, система мониторинга и нужна падла для того, чтоб привлекать внимание к проблемным местам правильным способом...

Во-о-о-от. А там разбалансы по 10 минут.....

Собственно, в результате было выяснено, что существует незакрытый баг (по крайней мере все так говорят) в этом плагине, который тянется из версии в версию. На данный момент доступна версия 1.5, и в ней баг тоже присутствует.

В ходе разборок было выяснено, что офсет не проверяется на серверах, где версия ntp стоит выше, чем 4.2.4p8-1.3.28, это SuSE Linux Enterprise Server Service Pack 3 64bit (ntp-4.2.4p8-1.22.1.x86_64.rpm)

Проблема была решена понижением версии пакета ntp до ntp-4.2.4p8-1.3.28.

На всякий случай конфиги.

Сервер NTP

server 127.127.1.0
fudge  127.127.1.0 stratum 10
server ua.pool.ntp.org iburst
server pl.pool.ntp.org iburst
server se.pool.ntp.org iburst
server si.pool.ntp.org iburst
server uk.pool.ntp.org iburst
server fi.pool.ntp.org iburst
server ie.pool.ntp.org iburst
server ru.pool.ntp.org iburst
driftfile /var/lib/ntp/drift/ntp.drift
logfile   /var/log/ntp
logconfig =all
disable auth
disable monitor

Клиент NTP (по сути тоже сервер, но время берет из сервера выше, поэтому клиент)

server 127.127.1.0
fudge  127.127.1.0 stratum 10
server 10.77.11.70 prefer iburst
server 10.77.11.8 iburst
server 10.77.1.8 iburst
driftfile /var/lib/ntp/drift/ntp.drift
logfile   /var/log/ntp
logconfig =all

В /etc/sysconfig/ntp присутствует:

NTPD_FORCE_SYNC_ON_STARTUP="yes"
NTPD_FORCE_SYNC_HWCLOCK_ON_STARTUP="yes"

Читать далее

2014-03-20

Linux. Склерозник. Полезные наборы команд.

Рекурсивно подсчитает количество файлов в текущем каталоге и всех вложенных

find . -type f|wc -l

Смотрим изменения в файле в динамике

watch -n 1 -d "egrep 'High|Low' /proc/meminfo"

Делаем локальную копию сайта

wget -r -k -l 7 -p -E -nc http://www.puschitz.com

Установка проски без редактирования конфигов

export http_proxy=http://10.77.111.111:3128

Проверяем, какие слорты ОЗУ на матери заняты, какие свободны:

dmidecode -t memory


Читать далее

2014-03-12

Автозапуск VM на XenServer 6.2

Как всегда только через консоль...

xe vm-param-set uuid=92c10c64-51cb-5ede-c257-f428b6f291a9 other-config:auto_poweron=true

Читать далее

2014-03-05

Xen Orchestra 3.2 Настройка сети

Из коробки виртуалка Xen Orchestra идет с сетевым интерфейсом, настроенным по DHCP.
Кстати, XOA3 сделан на базе Debian 7
Кто хочет статику, меняете файл /etc/network/interfaces. По умолчанию он такой:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

А у меня он такой:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback                                                                                                 
                                                                                                                       
# The primary network interface                                                                                        
allow-hotplug eth0                                                                                                     
iface eth0 inet static                                                                                                 
address 10.77.11.8                                                                                                     
netmask 255.255.255.0                                                                                                  
gateway 10.77.11.62                                                                                                    
auto eth0


Читать далее

Блокирование трафика с подсети (iptables)

Часто нужно залочить трафик с подсети на какой-то хост.
Делаем просто - на хосту, куда подсеть не должна попасть:

Блокировка диапазона ip

iptables -I INPUT -m iprange --src-range 10.77.1.1-10.77.1.254  -j DROP

Разблокирование диапазона ip

iptables -D INPUT -m iprange --src-range 10.77.1.1-10.77.1.254  -j DROP

Или аналогично с маской:

iptables -A INPUT -s 10.77.1.0/24 -j DROP
iptables -D INPUT -s 10.77.1.0/24 -j DROP

Читать далее

2014-03-04

SSH без пароля

Это реально удобно.
Реальная ситуация - есть два сервера, с одного на другой каждую ночь нужно копировать некий файл. Чтобы ничего не монтировать, не настраивать nsf или samba cisf, можно использовать scp, предварительно проведя небольшую настройку.

Итак, первый сервер adonis01. С него будет копироваться файл на второй сервер ora8t1. На обоих серверах динозаврик SLES8SP3(OpenSSH_3.4p1, SSH protocols 1.5/2.0)

ssh root@adonis01
adonis01:~ # ssh-keygen -t rsa -b4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:                                                                                           
Your identification has been saved in /root/.ssh/id_rsa.                                                               
Your public key has been saved in /root/.ssh/id_rsa.pub.                                                               
The key fingerprint is:                                                                                                
12:23:56:78::ab:cd:ef:12:ee:56:4r:58:e2:d8:d1 root@adonis01

После этого в /root/.ssh появилось 2 файла - id_rsa и id_rsa.pub

adonis01:~ # scp /root/.ssh/id_rsa.pub root@ora8t1:/root/.ssh/id_rsa_adonis01

ssh root@ora8t1
ora8t1:~ # cat /root/.ssh/id_rsa_adonis01 >> /root/.ssh/id_rsa_remote
ora8t1:~ # mcedit /etc/ssh/sshd_config

PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/id_rsa_remote
HostbasedAuthentication no
UseLogin no
ChallengeResponseAuthentication no
X11Forwarding yes
UsePrivilegeSeparation no
Subsystem       sftp    /usr/lib/ssh/sftp-server

ora8t1:~ # /etc/init.d/sshd restart

Все, настроили.
Проверяем

ssh root@adonis01
adonis01:~ # ssh ora8t1 df -hl

Должны получить нужный результат. Все, теперь для scp ничего вводить не надо - все будет работать без паролей.

Читать далее

2014-02-26

Старинные меры длины. Визуальненько.

Давно искал хороший склерозник для старинных мер длины. Вот у братухи в одноклассниках выхватил:



Читать далее

2014-02-24

Citrix XenServer 6.2 Изменение количества CPU

Бывает такая фигня - через интерфейс XenCenter невозможно изменить количество CPU. Вот так можно это сделать с консоли

[root@xen11 ~]# xe vm-param-set VCPUs-max=32 uuid=7f905bc6-6d60-65fd-34f5-caa1121deb8f
[root@xen11 ~]# xe vm-param-set VCPUs-at-startup=32 uuid=7f905bc6-6d60-65fd-34f5-caa1121deb8f
[root@xen11 ~]# xe vm-param-set PV-args='console=ttyS0 xencons=ttyS maxcpus=32'  uuid=7f905bc6-6d60-65fd-34f5-caa1121deb8f

Читать далее

2014-02-12

Пинок для оптимизатора PostgreSQL 9.1

Война с базой продолжается.
Вот программисты во время оптимизации запросов нашли набор параметров, который, по их словам, ускорил работу базы просто пипецкакофигенно... Я разницы не заметил, но может я не так смотрю. Параметры добавил в postgresql.conf

join_collapse_limit = 10
seq_page_cost = 0.0000001
random_page_cost = 0.0000001
cpu_operator_cost = 0.0000001
default_statistics_target = 3000
 

Читать далее

2014-02-07

Ловим засранцев на PostgreSQL 9.1, или кто подвесил базу...

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

SELECT usename, application_name, client_addr, client_hostname,
                NOW() - query_start as s, procpid, current_query, 'pg_ctl kill TERM '||procpid
FROM pg_stat_activity
WHERE current_query NOT IN ('','')
ORDER BY s DESC;

и убивать:

pg_ctl kill TERM сюда_вставить_procid


Читать далее

2014-01-20

CentOS 4.9 на Citrix XenServer 6.2 SP1. Пляски с бубном...

Если бы не необходимость переехать с VMWare ESXi Server на Citrix XenServer 6.2, никаких плясок с бубнами не было бы. А так...

Короче, нужно запустить Oracle 9iR2 на виртуальной машине linux. Как известно, варианта 2 - SLES9 либо CentOS4(или RHEL4). SLES9 на XenServer 6.2 не поддерживается, и не ставится, сука, хотя я и люблю его очень... Но поставить не удалось. Так что вариант 1 - RH4.

Итак, во склерозник по приведению CentOS4 в нормальное состояние для решения моей задачи:

1. Графики на CentOS в виртуальной консоли НЕ БУДЕТ!!! ВЫКУСИТЕ ФСЕ!!! Пипец. Когда ставишь с шаблоном для не поддерживаемых ВМ, графика есть, но есть и проблемы с настройкой ядра и установкой XenTools, а вот из шаблона графики нет. vncserver вам в помощь, хоть он работает... Но, внимание, уровень исполнения д.б. 5, так что редайтируйте inittab, а то замахаетесь руками между уровнями прыгать...

2. После обновления до 4.9 ломается yum, выдает ошибку:

Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.main(sys.argv[1:])
  File "/usr/share/yum-cli/yummain.py", line 97, in main
    result, resultmsgs = do()
  File "/usr/share/yum-cli/cli.py", line 477, in doCommands
    return self.updatePkgs()
  File "/usr/share/yum-cli/cli.py", line 955, in updatePkgs
    self.doRepoSetup()
  File "/usr/share/yum-cli/cli.py", line 71, in doRepoSetup
    yum.YumBase.doRepoSetup(self, thisrepo=thisrepo)
  File "__init__.py", line 225, in doRepoSetup
  File "repos.py", line 523, in baseurlSetup
  File "repos.py", line 832, in getMirrorList
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 583, in urlopen
    return default_grabber.urlopen(url, **kwargs)
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 741, in urlopen
    return self._retry(opts, retryfunc, url)
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 702, in _retry
    r = apply(func, (opts,) + args, {})
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 740, in retryfunc
    return URLGrabberFileObject(url, filename=None, opts=opts)
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 893, in __init__
    self._do_open()
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 960, in _do_open
    fo, hdr = self._make_request(req, opener)
  File "/usr/lib/python2.3/site-packages/urlgrabber/grabber.py", line 1059, in _make_request
    fo = opener.open(req)
  File "/usr/lib/python2.3/urllib2.py", line 326, in open
    '_open', req)
  File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.3/urllib2.py", line 502, in
    lambda r, proxy=url, type=type, meth=self.proxy_open: \
  File "/usr/lib/python2.3/urllib2.py", line 509, in proxy_open
    if '@' in host:
TypeError: iterable argument required


Полечить можно только правильно прописав proxy в /etc/yum.conf


Читать далее

2013-12-19

Linux. Используем файл как файловую систему.

Мучались мы долго с квотированием файловых ресурсов на samba, в итоге пришли к простому решению. Делаем файл ограниченного размера, подключаем его как файловую систему, шарим через самбу. Все, никто никогда за пределы файла не вылезет:

Создаем и монтируем ресурс размером 100М:

dd if=/dev/zero of=/files01/fs/alexsf.fs bs=1024 count=100000
mkfs.ext3 /files01/fs/alexsf.fs
mkdir /files01/mnt/alexsf
mount -t ext3 -o loop /files01/fs/alexsf.fs /files01/mnt/alexsf

Если нужно увеличить размер, например до 300М:

umount -l /files01/mnt/alexsf
dd if=/dev/zero of=/files01/fs/alexsf.fs bs=1 count=0 seek=300M
e2fsck -f /files01/fs/alexsf.fs
resize2fs /files01/fs/alexsf.fs
mount -t ext3 -o loop /files01/fs/alexsf.fs /files01/mnt/alexsf
e2fsck -f /files01/fs/alexsf.fs

Проще в некоторых случаях создать новый файл,  смонтировать и перелить данные, а исходный удалить.

Для монтирования при загрузке, в /etc/fstab добавить

/files01/fs/alexsf.fs   /files01/mnt/alexsf     ext3    acl,user_xattr  1 0

С флагами внимательно, провтыкаете - сервер не загрузится. Если стремно постоянно редактировать fstab, что придется делать на большой файлопомойке, где порядка сотни самбовских шар, можно написать скриптец и запихнуть его в init.d, ну и линки соответственно сделать для вашего уровня выполнения.

Такой вот скрипт:

#! /bin/sh
#
# Copyright (c) 2013 Filippov A.S.
#
# /etc/init.d/mntusersfs
#
### BEGIN INIT INFO
# Provides:          mntusersfs
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network
# Default-Start:    3 5
# Default-Stop:    3 5
# Description:       Mount users filesystems
### END INIT INFO

. /etc/rc.status

rc_reset

case "$1" in
  start)
        echo "Mount users filesystems..."
        mount -v -t ext3 -o loop /files01/fs/a1.ext3 /files01/mnt/a1
        mount -v -t ext3 -o loop /files01/fs/a2.ext3 /files01/mnt/a2
        mount -v -t ext3 -o loop /files01/fs/alexsf.ext3 /files01/mnt/alexsf
        rc_status -v -r
        ;;
    stop)
        echo "Umount users filesystems..."
        umount -l -v /files01/mnt/a1
        umount -l -v /files01/mnt/a2
        umount -l -v /files01/mnt/alexsf
        rc_status -v
        ;;
    status)
        mount -l -t ext3
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

rc_exit

В этом случае при провтыке в скрипте он просто не отработает целиком. Ошибки легче исправлять на живой системе :)

А вот так ставим на автозагрузку:

chkconfig mntusersfs on

Спустя пять дней закончились loop devices. Сейчас делаю так(номер loop увеличиваю при создании новой ФС)

dd if=/dev/zero of=/files01/userfs/admsektor.ext3 bs=1024 count=2048000
mkfs.ext3 /files01/userfs/admsektor.ext3
mkdir /files01/usermnt/admsektor
mknod -m 660 /dev/loop8 b 7 8
mount -t ext3 -o loop /files01/userfs/admsektor.ext3 /files01/usermnt/admsektor
mkdir /files01/usermnt/admsektor/admsektor
chmod 777 /files01/usermnt/admsektor/admsektor
tune2fs -m 1 /dev/loop8
tune2fs -r 1 /dev/loop8

Читать далее

2013-12-18

XenServer 6.2 исправление дефолтной настройки maxcpus

По умолчанию, в Citrix XenServer 6.2 есть такая неприятная штука - практически все шаблоны для создания витруальных машин идут с параметром maxcpus=1, что означает, что сколько бы процов вы не дали на виртуалку, в ней будет только 1. Исправить можно, установив принудительно maxcpus в другое значение. Через XenCenter (os boot parameter) сделать это можно не всегда, а вот через командную строку...

Цепляемся по ssh на XenServer, где работает виртуальная машина, предположим, которая называется s11s3x64, и


[root@xen02 ~]# xe vm-list name-label=s11s3x64
uuid ( RO)           : 973563fd-00da-0a89-54de-a70e78b37351
     name-label ( RW): s11s3x64
    power-state ( RO): running

[root@xen02 ~]# xe vm-param-set PV-args='console=ttyS0 xencons=ttyS maxcpus=32' uuid=973563fd-00da-0a89-54de-a70e78b37351

Все, теперь в нашей виртуалке будет максимум 32 проца, не больше. То есть если в настройках 4, будет 4, если 40 - будет 32.

Читать далее