LINUX.ORG.RU

Сообщения PIKNIK

 

HDD Utilization 100% при низких read и write

Добрый день, господа!

Прошу Вас помощи в теории о странном поведении системы в плане работы с жестким диском.

В мире существует достаточно загруженный сервер на Centos 6.7, являющиеся виртуальной машиной VMWare. Сервер очень загружен днём и не сильно ночью. В своё время данную виртуальную машину апгрейдили по CPU, RAM и HDD. Однако пользователей становилось всё больше и мы упёрлись в I/O HDD, который уже так просто не «добавить».

Пока оптимизация данного параметра только в планах, однако мне на руки попался график с Zabbix, где я обнаружил одну странную вещь.

График

Дело в том, что днём HDD Utilization доходит до 100% и оно понятно - пользователи выполняют кучу операций по чтению и записи. Но меню больше интересует, что творить ночью. Как видите, часов в 5-6 HDD Utilization держится на 100%, однако операции чтения/записи околонулевые. Сколько я не пытался найти информацию по поводу данного факта в интернете - ничего полезного не узнал. Совершенно не понятно, что заставляет Утилизацию держаться на максимальных значениях: то ли идёт какая-то проверка дисков на целостность данных по ночам (тогда почему фиксируется Утилизация, но не фиксируется чтение/запись), то ли планировщик сошел с ума и гоняет считыватель жесткого диска туда-сюда, то ли соседние виртуальные машины на этом сервере виртуализации VMWare выполняют какой-то массовую обработку информации и нашему серверу эти все операции видны только зашкаливающей утилизацией. Не понятно.

Подскажите, было ли в Вашей работе нечто подобное и куда тут стоит копать?

 

PIKNIK
()

Узнать МАС-адрес до поднятия eth-интерфейса в initrd

Добрый день, Господа!

Возникла большая необходимость собрать initrd-файл, который при загрузки узнавал бы МАС-адрес одной (любой) физической сетевой карты, делал бы не его основании hostname системы и уже после поднимал сетевую карту и шел на DHCP-сервер.

Проблема в том, что поиск МАС-адрес нужно получить на самом начальном этапе загрузки initrd, а на данном этапе сетевая карта eth не подключен как модуль.

Соответственно, МАС-адреса нет ни в /sys, ни в dmesg.

Собственно, в данной ситуации мне нужно либо как-то спросить МАС-адрес у ядра, либо найти точку между поднятием сетевого интерфейса и получением IP по DHCP, чтобы вставить туда свой скрипт преобразования МАС в hostname.

Уважаемые, ни у кого нет идей, как можно выполнить вышеуказанное на данном этапе загрузки?

Благодарю

 

PIKNIK
()

Squid: auth_param basic credentialsttl 15 minutes не работает

Приветствую!

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

В общем делал я Squid на Centos 6, который умеет запрашивать логин-пароль у пользователя, проверять его на LDAP-сервере (OpenLDAP), после проверять, состоит ли аутентифицированный пользователь в группе inet и, если это так, пускать его на один единственный сайт.

Долго тренировался с конфигом squid, но за пару дней все же подружил его с ldap. Однако при работе пользователя окно ввода логина/пароля вываливалось на каждый запрос.

Чуть покурив, я добавил в squid строчку auth_param basic credentialsttl 2 minute

(именно, minute. Без «s» в конце. «s» я добавил уже когда стал разбираться с нижесказанной проблемой).

Постоянный вывод окна исчез и я с чистой совестью увеличил credentialsttl до 15 минут (сохранит ошибку с «s»), перезапустил squid и ушел пробовать настраивать SAMS.

Прошло неделя и я обратил внимание, что при простое соединения с прокси-сервером аутентификацию действительно выбивает, но проходит далеко не 15 минут, а ровно 2 (по часам сверял). Я сначала полез в squid-конфиг проверять, точно ли я поменял credentialsttl на 15, после добрые десяток раз перезапускал/перезагружал squid, после обнаружил ошибку с minutes, исправил, перезагрузил, после поменял credentialsttl вообще на 2 hours, вообще весь сервер перезапускал - один фиг таймаут аутентификации стоит в 2 минуты.

В общем я уже исчитал гугл, но похожих симптомов не нашел. Поэтому и прошу Вашей помощи.

P.S. Авторизация пользователя по группе работает нормально. Сам по себе конфиг полезный т.к. не-AD авторизации мало где раскрыта.

Вот конфиг моего squid сейчас

# created by SAMS _sams_ 2016-3-10 19:2:44
http_port 127.0.0.1:3128
http_port 10.1.1.4:3128 

#tcp_outgoing_address 0.0.0.0 all
#dns_v4_first on

auth_param basic program /usr/lib64/squid/squid_ldap_auth -b "dc=tni,dc=int" -f "uid=%s" ldap1
auth_param basic children 25
#auth_param basic max_challenge_reuses 0
auth_param basic realm Access Permit. Please, auth
auth_param basic credentialsttl 15 minutes



external_acl_type ldap_users ttl=120 %LOGIN /usr/lib64/squid/squid_ldap_group -R -b "ou=groups,dc=tni,dc=int" -f "(&(memberUid=%u)(cn=%g)(objectClass=posixGroup))" -h ldap1

#------ SQUID service access ------#

acl manager proto cache_object
acl localhost src 127.0.0.1/32 
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


#------ LDAP Group Access ------#
acl inetaccess external ldap_users inet
acl ldap_user proxy_auth REQUIRED
acl site	dstdomain mysite.com

http_access allow site inetaccess
#http_access allow ldap_user
#http_access deny !ldap_user
#http_access allow inetaccess


#------ LAN Access -------#

acl lan src 10.0.0.0/8
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 5190 5222 # https
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl CONNECT method CONNECT

#http_access allow lan
http_access allow localhost
http_access deny all

#redirect_program /usr/bin/samsredir
#redirect_children 5


 

PIKNIK
()

Подключение по RDP к Win2008R2 через Linux.

Доброго дня, Господа!

Столкнулся с некой непоняткой в работе различных RDP-клиентов под Debian и Ubuntu. Нужна Ваша помощь.

На объекте есть 2 подсети: 10.0.0.0/23 (1) и 192.168.0.0/16 (2). В 1-ой подсети распологаются Linux.desktop-машины, в другой - Windows-машины и терминальный сервер Win2008R2 по адресу 192.168.0.1

2 подсети разделяет файерволл Vipnet HW, который сейчас пропускает Весь трафик по протоколам tcp, udp, icmp с любых IP и портов.

Файервол пропускат нормально: пинги, телнеты на 3389 порт - всё пропускает нормально.

[L]----(1)----[V]----(2)----[T] L- линукс декстоп V- файрвол Vipnet T- терминальный сервер Win2008R2

На линукс.декстоп установил krdc, remmina, rdesktop.

А теперь про непонятку: ни одна программа под Linux не коннектится к RDP-серверу. Либо долго весит «Соединение с...», либо в случае с krdc - просто «синий» экран. В общем я не получаю даже картинки ввода пароля.

В remmina я подключаюсь с Безопасность - RDP. В KRDC - с ключём --sec rdp.

Если я Линукс-машину в подсеть (2) - оба RDP-клиента подключаются без проблем.

По логике я начал проверять настройки файерволла, но после обнаружил это: я подключил Линукс-машину в подсеть (1) и поднял на ней виртуалку с WinXP с мостом в подсеть (1). К моему удивлению - штатная подключалка RDP XP-шки без проблем выдала картинку с терминального сервера. То есть файервол пропускает соединения нормально. Однако с linux ни один RDP-клиент так и не установил соединение из подсети (1).

В IPTABLES правил нет.

Подскажите, в чем может быть разница linux-ориентированных RDP-клиентов в сравнении со штатной RDP-подключалки WinXP?

 , ,

PIKNIK
()

NTP-сервер времени до октября 2014

Здравствуйте, Уважаемые!

Досталась мне в наследство одна система, работа которой сильно зависит от корректности времени (что за система - не суть). Есть у этой системы проблема: на ней неё нет обновления времени, которое случилось в октябре 2014. В итоге Московское время там до сих пор UTC+04:00. При этом в этой системе не у всех есть доступ администратора и ввести в ручную время не представляется возможным. Без административного доступа возможно ввести только часовой пояс и выбрать вручную NTP-сервер. Предвкушаю большой крах системы, если я не разверну NTP-сервер.

Но я столкнулся с проблемой - как можно установить NTP-сервер со старым временем... Если я устанавливаю какой-нибудь Linux-дистрибутив, устанавливаю из репозиториев NTP - на нём оказывается уже московское время UTC+03:00, а сколько я с ним не игрался - скорректировать время у меня не получалось (система сравнивает UTC-время, текущее время и часовой пояс. Если что-то не верно - не работает).

Уважаемые, подскажите, как грамотные админы разворачивают NTP-сервера со старым временем? (Или как грамотные админы справляются с такой задачей более деликатным способом?).

 

PIKNIK
()

openbox Запуск программы/скрипта от root через ярлык idesk

Доброго дня, Уважаемые!

Имею Alt Linux с openbox и ярлыками на idesk.

Недавно стала задача сделать ярлык, который очищал бы очередь печати CUPS.

Найти как это сделать через команду было не сложно: # cancel -a

Ну или через юзеровскую консоль: $ su -c «cancel -a» (пароля на root нет).

Однако когда я запихал данную команду в ярлык оказалось, что команда не отрабатывает. Пробовал добавлять полный путь, пробовал в ярлыке указывать путь до скрипта с данной командой, пробовал ставить везде SUID - бесполезно. Даже через контекстное меню -> «Запустить...» не работает, хотя до этого я считал, что «Запустить...» просто посылает на консоль команду от имени текущего пользователя. При этом ВСЕ команды легко и корректно обрабатываются через терминал от пользователя.

При этом, если сделать скрипт с SUID - он всё-ровно запускается от пользователя. su -c при это не работает.

Уважаемые, у вас есть идеи, почему так происходит: с консоли от пользователя всё норм, я ярлыка - нет?

 

PIKNIK
()

Propagator: лечить или заменить.

Доброго дня, Уважаемые!

Делаю образ для PXE загрузки на основании AltLinux LiveCD.

Суть загрузки такая: загружается ядро, потом запускается т.н. Prepagator (http://www.altlinux.org/Installer/common/propagator), который запрашивает по DHCP сетевые настройки, монтирует каталог по NFS с сервера и из этого каталога берёт сжатую squashfs файловую систему и разворачивает её у себя в ОЗУ, загружая с неё систему.

На стенде все отлично и шустро работает. Но однажды я пришёл подключать данный образ в одной сети. На моё удивление «отлично и шустро» застопорилось на моменте отправления DHCP-запроса на сервер. На экране гордо висит надпись «Sending DHCP requiest...», а в логах написано следующее:

AUTOMATIC: parameter dhcp for network means returning DHCP
DHCP: sending DISCOVER 

При этом пакет с DHCP-запросом физически не вылетает из образа.

Попробовал перезагрузить - то же самое. При этом в логах строчки «DHCP: sending DISCOVER» может и не быть, что сигнализирует о несистемности ошибки. Раз на 10-ый может быть загрузка пройдёт.

Копаясь с wireshark я обнаружил, что в данной сети управляемые свитчи Д-Линк, в которые отсылают STP-пакеты в поисках другого коммутатора (Судя по всему по умолчанию включён STP в Д-Линках). Ради интереса отключил на свитче STP и, о чудо, загрузка стала быстра и стабильна как в лучшие годы.

Ну, думаю, не беда. Единичный случай, решился в меру легко.

Но потом мне нужно было установить образ в другой ЛВС. Она больше первой и ахинеи там творится раз в 10 больше. Кроме STP-пакетов там еще летали неизвестные мне XID от свитча Huawei и 0x8899 от домашнего роутера Zyxel. Долго-долго искал данное сетевое оборудование (хозяева сами не знают, где у них что лежит), но даже после отключения загрузка образа не прошла.

Сейчас я стою перед выбором: либо крутить propagator в образе или эту злосчастную ЛВС. В сети понаходить и выгнать тараканов, мешающих загрузке, не сложно, но нет гарантии, что я завтра не попаду в такую же мрачную ЛВС в другом месте и образ опять не будет грузиться.

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

Собственно, я хочу спросить у Вас, Уважаемые:

Был ли у Вас опыт работы с данной программой?
Знаете ли вы замену данной программе, схожую по функционалу (получить IP по DHCP, подключиться по NFS с поддержкой squashfs и запустить развёртывание системы в ОЗУ)?

 ,

PIKNIK
()

Запуск всех скриптов в каталоге в фоновом режиме.

Добрый день, Уважаемые!

Будьте добрый, подскажите, как можно запустить все скрипты в каталоге (имена и количество скриптов может быть любым) в фоновом режиме, а не по очереди. Запуск должен осуществлятся одной командой стандартными средствами консоли Linux.

Суть: есть каталог scripts, а в нём script.sh, scriptik.sh, scripticshe.sh.

Нужно одной командой запустить из всех одновременно и «отпустить» консоль.

Пробовал так:

$ bash /home/user/scripts/*.sh & 

В фоне запускается только первый скрипт script.sh (выполняться он будет вечность, поэтому до второго очередь никогда не дойдёт.)

Пробовал так:

$ bash /home/user/scripts/"*.sh &" 

Пишет, что /home/user/scripts/«*.sh &» не такого файла или каталога.

В общем пробовал куча вариаций, но в итоге получалось так, что либо запускается самый-самый первый скрипт, либо вообще не запускается.

Будьте добрый, подскажите, как настоящие знатоки консоли решают данную проблему?

 

PIKNIK
()

RAID 0 SWAP замена жесткого диска

Здравствуйте, Уважаемые!

Прошу опытных людей подсказать мне одну тонкость в замене диска software RAID. Всё по порядку.

Что есть:

  • Операционная система Centos (Linux version 2.6.29 (root@proxy_0_6) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Apr 15 15:22:21 MSD 2009)
  • 3 жестких диска. 2 в RAID'е, третьий за замену одного из выходящего из строя.
  • Software RAID. До замены диска было вот так:
    #cat /proc/mdstat
    Personalities : [raid0] [raid1]
    md1 : active raid1 sda1[0] sdb1[1]
          152512 blocks [2/2] [UU]
    
    md2 : active raid0 sdb3[1] sda3[0]
          2056192 blocks 64k chunks
    
    md0 : active raid1 sda2[0] sdb2[1]
          155107456 blocks [2/2] [UU]
    
    unused devices: <none>
    


    Что произошло:
    SMART показал скорую смерть диска sda и его необходимо заменить. Заменить md1 и md0 не составило труда. Проблема в md2. Этот раздел отвечает за SWAP и так просто его не убрать. В виду того, что данный ПК должен показать верх стабильности, я не могу ни перезагружать ПК, ни, тем более, крахать. То есть всё нужно делать на «горячую»

    Что нужно:
    Нужно, не перезагружая ПК, сказать Centos, чтобы он перестал использовать SWAP, удалить md2/заменить sda3, собрать/запустить RAID0 заного, и сказать ОС, что этот новый раздел есть SWAP и можно на него начинать записывать информацию.

    Что есть на данный момент:
    Сейчас рейд у меня выглядит вот так:
    # cat /proc/mdstat
    Personalities : [raid0] [raid1]
    md1 : active raid1 sdc1[0] sdb1[1]
          152512 blocks [2/2] [UU]
    
    md2 : active raid0 sdb3[1] sda3[0]
          2056192 blocks 64k chunks
    
    md0 : active raid1 sdc2[0] sdb2[1]
          155107456 blocks [2/2] [UU]
    
    unused devices: <none>
    
    

    В интернете я нашел решение данной проблемы только по кусочкам или там, где нужно перезагружать ПК. При этом доверия к этим кусочкам информации у меня нет. Собственно поэтому я и прошу совета у опытных людей данного форума, как лучше сделать данную манипуляцию.
    Буду очень благодарен Вам за участие!

 , ,

PIKNIK
()

RSS подписка на новые темы