[Решено] VirtualBox в качестве круглосуточного сервера Windows 2003

Автор vdnovichkov, 16 декабря 2012, 23:57:45

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vdnovichkov

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

Я вложил скрипт init.d, который отвечает за работу виртуального сервера.

На виртуальном сервере я установил Windows 2003 Enterprice, организовал на нём контроллер домена AD, DHCP, DNS, RDP и Radmin на 995-й порт, VPN-сервер, чтобы из универа сидеть за своим сервером.
На самом физическом сервере установлен Debian Squeeze, я использую 5 сетевых карт, на две из них я вывел "приёмник" и "передатчик" VPN от виртуального сервера.

Сервер работает, всё хорошо, но есть одна проблема:
Во время работы, виртуальная машина постепенно работает с каждым днём всё медленнее и медленнее, пока окончательно не заступорится. Виртуальную машину перезагружаю командой "перезагрузить" через Radmin раз в несколько дней, а иногда раз в неделю.
Мой сервер - Intel Xeon 2.4 GHz HyperTreading 2 процессора, материнская плата 2003-го года 604-й сокет.

Почему я поставил VirtualBox?
Я хотел поставить VmWare Server, всё я установил по инструкциям, и все службы вроде бы запускались, но ни как не хочет работать веб-консоль, как будто она и не работает, а хотя все службы работают как надо и говорят как надо.
Пробовал QEMU: ни как не хочет работать KVM, да и ни где не нашёл KVM и если нашёл, не работает вообще. Без него работает очень медленно и не работала сеть.

VirtualBox в самый раз подходит, и по быстродействию и по сети. Всё настроил, установил в виртуальной машине, и ввёл на вооружение, но проблемы с постепенным замедлением машины я заметил уже только спустя несколько месяцев, когда возникла необходимость часто подключаться по Radmin к серверу из универа, чтобы обойти ограничение закрытой сети университета, у которого свободные только почтовые порты, а остальное либо по VPN, либо через прокси, которые доступны только сотрудникам университета, и то, VPN доступен только сисадминам Хэлпдэска и сетевикам.

Лирическое отступление: cервер у меня - домашний, стоит в кладовке, дома у меня поднята сеть из пяти компьютеров и нескольких VPN-пользователей, которые входят в состав сети заочно. Виртуальный Windows 2003 ставлю лишь потому, что у него больше возможностей по реализации контроллера домена, и раньше до дебьяна, он был основным на сервере, а потом после смерти харда с ним, я поставил Debian на новый диск, куда сделал BackUP всех своих данных со второго харда, который у меня выделен для данных, сайтов, почты и общих данных. Самое интересное, с тех пор, как у меня стоит Debian - НИ ОДНОЙ АВАРИЙНОЙ ПЕРЕЗАГРУЗКИ, как это приходилось делать на Windows из-за возникновения нестабильности в работе (где-то раз в месяц) и частых самообновлений.

Если причина этой проблемы в самом VirtualBox, в нём самом, в его тактике работы, то мне нужно решить проблему с установкой VmWare Server, который был у меня на вооружении при Windows-сервере и который оправдал себя в роли круглосуточного сервера.

Olej

Цитата: vdnovichkov от 16 декабря 2012, 23:57:45
Сервер работает, всё хорошо, но есть одна проблема:
Во время работы, виртуальная машина постепенно работает с каждым днём всё медленнее и медленнее, пока окончательно не заступорится. Виртуальную машину перезагружаю командой "перезагрузить" через Radmin раз в несколько дней, а иногда раз в неделю.
Мой сервер - Intel Xeon 2.4 GHz HyperTreading 2 процессора, материнская плата 2003-го года 604-й сокет.
Я думаю, что это ваш Windows сдыхает, а не VirtualBox.

Цитата: vdnovichkov от 16 декабря 2012, 23:57:45
Пробовал QEMU: ни как не хочет работать KVM, да и ни где не нашёл KVM и если нашёл, не работает вообще. Без него работает очень медленно и не работала сеть.
1. VirtualBox использует код эмуляции QEMU, так что это как-бы дочерний проет.
2. Это вы QEMU с KVM не умеете запускать: QEMU


PbI6A

Если есть желание "ничего не делать", то надо посмотреть ключи виндовой команды shutdown.exe или зашедулить в нужные дни недели или числа месяца вот такую команду:
shutdown.exe /r /t 60 /c "Restart this system!" /f /d p:4:1

А если есть желание "сделать хорошо", посмотреть, поддерживает ли комп виртуализацию и поднять XEN. Мануалов в инетах море.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

vdnovichkov

#3
Цитата: Olej от 17 декабря 2012, 22:40:04Я думаю, что это ваш Windows сдыхает, а не VirtualBox.
Скажу так: на "чистом" железе он работает бесперебойно достаточно долго, не замедляясь, перезагружать приходится из-за обновлений, перенастроек некоторых системных прог. И при той же самой конфигурации. Единственное но: в эту я установил дополнение от VirtualBox и поставил значительно меньше прог. Или... Помню миф о том, что Microsoft для старых ОС может выпускать обновления, "провоцирующие" нестабильность, чтобы заставить покупателей перейти на новое. Если что, оперативы я выделил гостю 1.5 GB из 4-х имеющихся на материнской плате в надежде на то, что он перестанет виснуть, но не прокатило. И кстати: пока я лазил внутри самой ОС-ки, то я заметил, что при элементарных действиях внутри виртуальной машины, например, открыть папку в проводнике, перетащить окно, и даже выводить график загрузки процессора в диспетчере задач показана сильная нагрузка на процессор.



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


Цитата: PbI6A от 18 декабря 2012, 06:09:12поддерживает ли комп виртуализацию и поднять XEN
У меня старое железо 2003-го года, x86, 2x Xeon 2.4 Ghz, естественно об аппаратной виртуализации речи нет, иначе я бы именно XEN и поднял бы, планирую в будущем апгрейд на новое железо, там уже однозначно всё будет, а это произойдёт пока не скоро

Цитата: PbI6A от 18 декабря 2012, 06:09:12Если есть желание "ничего не делать", то надо посмотреть ключи виндовой команды shutdown.exe или зашедулить в нужные дни недели или числа месяца вот такую команду:
shutdown.exe /r /t 60 /c "Restart this system!" /f /d p:4:1
Я эту команду регулярно использую, чтобы писать скрипты выключения своих станций, но пока не решился использовать её на сервере, да в принципе пусть каждую ночь перезагружается, пока я не решу проблему быстродействия, слава богу, что все важные роли я оставил самому дебьяну и о них не беспокоюсь.

Сообщение объединено: 19 декабря 2012, 10:51:43

Только что удалил дополнения гостевой от VirtualBox, быстродействие выросло в два раза, уже прогресс: сервер через консоли управления DNS, DHCP и AD на станции стал быстрее отвечать; RDP перестал ползать и прямое управление по Radmin тоже; Диспетчер задач перестал выводить "вечную перегрузку", но всё равно если что-либо открывать и т.п., то диспетчер показывает полную нагрузку.
Проверим, пусть пока поработает несколько дней без дополнений, если всё будет Ok, значит проблема решена ;)

PbI6A

Как терминальный сервер не используется? Там есть такая фишка - настроить logoff юзеров по таймауту неактивности (отсутствию ввода). Настраивается в "настройке служб терминалов", жамкнуть пкм на "tcp/ip", выбрать "свойства" и во 2 или 3 вкладке есть эти цифры. И, конечно, если все под одним именем не ходят, ограничить народ единственной сессией.
Это как вариант, если сервер используется как терминальный.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

vdnovichkov

#5
Цитата: PbI6A от 19 декабря 2012, 19:07:29Как терминальный сервер не используется?
Он у меня очень активно используется, в домашних условиях именно его использую, ну и если выход на порт 3899 не закрыт в той сети, где я есть, например в универе он закрыт, использую 995-й порт для Radmin. Для каждого юзера я однозначно сделал единственную сессию, чтобы не мусорили лишними сеансами, да и мне удобно под одну сессию входить с разных компов, приходится доделывать незаконченные дела, находясь на другом компе.

Сообщение объединено: 20 декабря 2012, 10:36:24

Ради эксперимента сделал поправку в скрипте службы:

VBoxManage startvm "$vm" -type vrdp
заменил на
VBoxManage startvm "$vm" -type headless

Код скрипта-загрузчика виртуальной машины

#!/bin/sh

#v0.4

TIMEOUT=30 #Таймаут в секундах на заверщение работы. =DELAY*TIMEOUT. Для каждой виртуальной машины
DELAY=2 #Задержка проверки.
STARTDELAY=5 #Задержка в секундах перед стартом следующей машины
vms="Win2003" #Список виртуальных машин

case $1 in
    #START
    start)
for vm in $vms
do
    if /usr/bin/VBoxManage showvminfo "$vm" | grep "running" -c > /dev/null
then echo Virtual Machine "$vm" already running
    else
VBoxManage startvm "$vm" -type headless
sleep $STARTDELAY
    fi
        done
    ;;
    #STOP
    stop)
for vm in $vms #Виртуальные машины через пробел. Регистрозависимо.
do
    COUNT=1
    if /usr/bin/VBoxManage showvminfo "$vm" | grep "running" -c > /dev/null
then /usr/bin/VBoxManage controlvm "$vm" acpipowerbutton #Команда "нажать кнопку питания"
        # Гостевая машина должна выполнять какое-либо действие (логично, что это выключение или спячка)
    # при нажатии кнопки питания. Иначе она будет просто убита по таймауту.
        # К примеру, cерверные версии Windows, по умолчанию, без входа в систему не реагируют на кнопку питания.
    echo -n Stopping Virtual Machine $vm.
        until [ "$COUNT" -gt "$TIMEOUT" ]
            do
            sleep $DELAY
            echo -n .
        if /usr/bin/VBoxManage showvminfo "$vm" | grep "powered off" -c > /dev/null
        then echo "done"
                break
        fi
            let "COUNT += 1"
    done
        if [ "$COUNT" -gt "$TIMEOUT" ]
        then echo -e '\E[31;40mtimeout. "$vm" will be terminated.'; tput sgr0
        fi
    else
echo Virtual Machine "$vm" not running
    fi
done
killall -r VBox #На всякий случай убить все VBox`ы
    ;;
    #RESTART
    restart)
        $0 stop
        $0 start
    ;;
    #STATUS
    status)
for vm in $vms
do
    echo Virtual Machine \"$vm\" is $(/usr/bin/VBoxManage showvminfo $vm | grep "State" | awk '{print $2" "$3" "$4 $5}')
done
    ;;
    #LIST ALL VMs
    list)
VBoxManage list vms
    ;;
    #USAGE
    *)

echo "Usage: /etc/init.d/Win2003 (start|stop|restart|status|list)"
exit 1;
    ;;
esac


Как только загрузился, всё вроде шикарно, всё работает быстро и легко, но:
Когда я переподключился к терминальному серверу, то в диспетчере задач обнаружил "пилу" на графике нагрузки процессора, и самое интересное, что через ещё некоторое время эта пила усилилась и общее быстродействие заметно снизилось, где-то на 0.5 раза, утром эта же виртуальная машина без перезапусков уже работала медленно и слабо.

В списке процессов, которые стремились занять "первое место" в числе самых нагружаемых процессов были:
сам таксман, эксплорер, lsass.exe, wmiprvse иногда проскакивал, и т.п.

Пока попробую почистить винду от некоторых служб и автозапусков, а хотя я и так их все уже понаубивал, тут кое-что другое и это надо найти

PbI6A

Скриншот со списком всех процессов и главного окна диспетчера служб терминалов в студию!
А какой процесс пилу образует? Если отсортировать процессы по загрузке процессора, это сразу станет видно.

Впрочем, настройка терминальных виндовых серверов (пусть даже в виртуалке под линуксом) - это жесточайший оффтоп для этого форума.

Сообщение объединено: 20 декабря 2012, 17:10:21

Ещё подумал - сервер лицензий поднят? Активирован? Лицензирование в каком режиме?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

vdnovichkov

#7
Цитата: PbI6A от 20 декабря 2012, 17:09:38Скриншот со списком всех процессов и главного окна диспетчера служб терминалов в студию!

Я писал, что пилу создают сам Taskman, Explorer и ещё кое-что.
И самое интересное, что новым сервером терминалов пользуюсь только я один и всё, его главная роль это контроллер домена и всё, или как инструмент, чтобы работать на своём железе, находясь в универе.
Цитата: PbI6A от 20 декабря 2012, 17:09:38Если отсортировать процессы по загрузке процессора, это сразу станет видно.
Спасибо, именно таким методом я и выявил процессы, которые создают пилу, и мне кажется, что сам таскман и создаёт, хотя на чистом железе такого никогда не бывало.

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

Цитата: PbI6A от 20 декабря 2012, 17:09:38
Впрочем, настройка терминальных виндовых серверов (пусть даже в виртуалке под линуксом) - это жесточайший оффтоп для этого форума.
Пока у меня на серве был сам Windows 2003 железом, он работал лучше всего среди виндовых систем, он у меня был и полноценным сервером терминалов, на котором работали не только я, там даже политикой домена организовал папку с ограниченными учётными записями, в которых я предусмотрел всё, чтобы физически не было возможно ни настраивать сам сервер, ни управлять им, ни лазать по его дискам, максимум просто работать с файлами, документами, сохранять их только в специально выделенную папку, где хранятся его данные и т.п.

Цитата: PbI6A от 20 декабря 2012, 17:09:38
Ещё подумал - сервер лицензий поднят? Активирован? Лицензирование в каком режиме?
Поднят, всё активировано, в режиме "на пользователя"

P.S. Также у меня работает сервер терминалов на самом дебьяне посредством XRDP, именно через него и через SSH ковыряюсь на самом серве, слава богу, лицензий не требует)

Сообщение объединено: 21 декабря 2012, 12:11:37

P.P.S. Хотя я включил щудель с перезагружалкой, но специально её отклучу, чтобы поймать график загрузки, который находится близко к 80-90% и при этом ни один из процессов, кроме "бездействия системы" не набирал эти 80-90% нагрузки, значит подозрения на NT-службы.
Т.к. я с VirtualBox впервые работаю как с системой серверной виртуализации, то, соответственно, не могу судить, кто зачинщик замедления - сам VirtualBox или же гость?

А если я подниму ещё одну виртуальную машинку на круглосуточное, и поставлю там что-то другое, к примеру "красную шапочку" или из раритетных Windows NT или 2000, но только для того, чтобы контролить нагрузку внутри гостя, поставлю их в чистом виде, ни чем не пичкая, для чистоты экспериментов

Сообщение объединено: 21 декабря 2012, 13:51:58

Установил NT4 Terminal Server паралельно пахать на том же сервере, пустой, за исключением Radmin server 2.
(пробовал обще останавливать Radmin Server на Win2003, но "пила" не исчезла)
Вот сравнение обоих операционных систем:
Сейчас они оба работают одновременно, только что их перезапускал обе, пока состояние такое, завтра сниму повторные контрольные показания с обоих осей. По ходу дела подозрения Olej-а оправданы, что дело в самой винде а не в VirtualBox. Паралельно запущенная пустышка NT4 возможно докажет это, если будет работать бесперебойно, пока его "сосед" виснет

PbI6A

Два вопроса ещё возникло. Что с антивирусом? Какая видюха на аппаратном сервере и что в линуксе с её дровами?
Может быть, что безумно тормозит графическая подсистема? Или если не логиниться в консоль, а заходить терминалом в винды, "гребёнка" аналогичная? Если развернуть диспетчер задач на весь экран и двойным кликом ткнуть на график загрузки, всё ещё сильнее усугубится?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

vdnovichkov

Цитата: PbI6A от 21 декабря 2012, 18:34:09Что с антивирусом?
Антивирус я на виртуальные сервера вообще не ставил.

На сервере видюха встроенная в материнскую плату (модель Intel SE7501CW2), 8 мегабайт видеопамяти. С дровами всё хорошо, линукс не возражает по этой видюшке. Графическая подсистема точно не тормозит, сервер с дебьяном я как только ни открывал: XRDP, SSH, напрямую коннектил моник и т.п., он работает бес перебоя с самого момента, как я его построил, только Win2003 тормозит нынче, VirtualBox выбрал ему 16 мегов видеопамяти, когда физически их 8 на видеокарте сервера.

Цитата: PbI6A от 21 декабря 2012, 18:34:09Если развернуть диспетчер задач на весь экран и двойным кликом ткнуть на график загрузки, всё ещё сильнее усугубится?
Вот графики с обоих виртуальных серверов. Ничего не усугубилось, и когда я вернул оба в исходное положение.


Ради теста я удалил с обоих серверов RadminServer, т.к. заметил, что как только я подключился к NT-шному серверу по Radmin, нагрузка резко возросла и держалась на 100% у NT4. У Win2003 я тоже удалил Radmin Server, и гребёнка резко уменьшилась, но сейчас по графику видно, что она есть, и при том я долго не перезагружал его, NT-шнный перезагружал очень много раз из-за настройки встроенных серверных служб.

P.S. Radmin Server для передачи графики на удалённую консоль, вклинивается в видеодрайвер, зеркалируя изображение (для этого он даже ставит свой видеодрайвер в добавку).

Чтобы не пользоваться Radmin-ом для Win2003 я сделал VRDP от самого VirtualBox на свой любимый 995-й почтовый порт, только пока ещё не знаю, как правильно включить авторизацию, а то тогда я вынужден буду блокировать ось при каждом отключении, хотя я даже при защищенном Radmin так делаю.

Но, как я вижу, размер гребёнки перестал увеличиваться как только я снёс Radmin Server с обоих серверов. А как они оба поведут если я их сутки не буду перезагружать, Это я пока посмотрю.

PbI6A

Что-то это мне напоминает... Что если попробовать сделать следующее:
1. уменьшить количество "виртуальных" мозгов до 512 или 640.
2. уменьшить разрешение экрана в виртуалке до 800*600*256.
3. всё-таки провериться на вирусы.
4. скачать и прогнать винчестер MyDefrag-ом.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

vdnovichkov

#11
Тест за сутки проведен:
WinNT4 работает стабильно и без замедления, даже когда я установил MSOffice 97 внутрь, всё равно работает так же без постепенных замедлений.

И кстати, я не подумал, разница есть:
Windows 2003 использует 40-гиговый диск собственного VirtualBox-овского формата, а Windows NT4 использует 2-гиговый образ диска в формате VmWare, который я создал раньше через VmWare Server и затёр на нём то, что было до сноса Win2003 с хоста.
_______________________
Цитата: PbI6A от 22 декабря 2012, 17:42:401. уменьшить количество "виртуальных" мозгов до 512 или 640.
Оперативную память? Окей, попробую после того, как уменьшу разрешение экрана виртуалки, а цвета вообще на минимум сведу.
Цитата: PbI6A от 22 декабря 2012, 17:42:402. уменьшить разрешение экрана в виртуалке до 800*600*256.
Ещё разница - Windows NT4 работает вообще в 800x600x16, как Win2003 работает в 1280x1024x65545
Цитата: PbI6A от 22 декабря 2012, 17:42:403. всё-таки провериться на вирусы.
Использую лечилку от DrWeb и потом от Каспера, всегда под рукой, чтобы проверять на вирусы не устанавливая антивирусник
Цитата: PbI6A от 22 декабря 2012, 17:42:404. скачать и прогнать винчестер MyDefrag-ом.
И это тоже сделаю, иначе подниму паралельную копию Win2003 для чистоты теста, но ничего внутрь не буду вообще ставить, кроме встренных серверных служб, и на диск формата VmWare

Сообщение объединено: 22 декабря 2012, 19:46:16

Только что убрал несколько лишних параметров, гребёнка уменьшилась почти в два раза

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


Сообщение объединено: 23 декабря 2012, 16:52:03

Проверил на вирусы, по DrWeb всё чисто, дефрагментирую чуть позже, и потом проверю по Касперскому


Сообщение объединено: 24 декабря 2012, 15:43:33

И дефрагментировал


Вот график, который показывает сейчас, после того, как я его перезагрузил в пять часов ночи по Москве до сегодняшнего момента (при этом через терминал машина слегка подвисает во время элементарных действий):


Для теста установлю контрольную виртуалку с Windows 2003, но на диск формата VmWare и ничего не буду на него ставить, кроме дров и базовых серверных служб

vdnovichkov

Только что установил с нуля Win2003 и даже не обновил и не настроил роли, вот график диспетчера задач - вообще "чистота - чисто тайд":) ;D

Изменения практически никакие - 512 мегабайт оперативы, диск в формате VmWare а не VirtualBox-овский.
Сейчас напичкаю чем надо, и проверю, как будет работать дальше

Olej

Цитата: vdnovichkov от 24 декабря 2012, 21:16:34
Только что установил с нуля Win2003 и даже не обновил и не настроил роли, вот график диспетчера задач - вообще "чистота - чисто тайд":) ;D
А чего было людям голову морочить?  :)


PbI6A

Может, мигрировать на него AD и не париться?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!