На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Debian & kvm/libvirt на Hetzner , нужны подсказки
    Здравствуйте, Господа!
    Имеем выделенный ("железный") сервер на Hetzner.de. Сам сервер i7 48Gb 2x2Tb.
    Цель: поднять на этом сервере хост систему Debian 8.4, на нем поднять виртуальную машину для w2008.
    Казалось бы задача тривиальная, мало того, уже неоднократно объезженная, но полезли непонятки.
    Настройка сети. Цель: доступ к винде только для VPN. Т.е. напрямую из интернет доступа быть не должно. Только для VPN. VPN (OpenVPN). Вот тут и возникает первая непонятка. Как настраивать сееть имея лишь единственный "белый" IP сервера?
    Допустим, "белый" IP 1.1.1.1. OpenVPN клиенты получают адреса 192.168.19.0/24. Как построить бридж, и нужно ли его строить, не понимаю. Я строил мосты для виртуальной машины в локальной сети и тут проблем и непоняток не возникало, тут же нужно строить мост с виртуальной сетью? Вопрос поставил по причине непонимания как настроить сеть для виртуальной машины. Нужен бридж или NAT? И как это настраивать? Я понимаю, что тут открываю все глубины своего незнания. Руководств в интернете по постройке мостов для KVM/Libvirt до черта, но все они строят мосты в одной подсети с eth0, а мне нужно совсем иное. Мне нужен мост с виртуальной сетью. Но как это сделать? Tun0 OpenVPN ни как не отображен в /etc/network/interfaces, да и появляется он много позже "создания" сети.
    Второй вопрос, непосредственно, по установке w2008. Ладно бы, сервер встал, но без доступа по сети, тут былоо бы все понятно, но у меня виснет сам процес установки. Виснет, практически в самом начале, на экране "Starting Windows". По моему прошлому опыту проблем с установкой w2008 не возникало.
    Устанавливаю командой
    ExpandedWrap disabled
       virt-install -n server -r 4096 -f /opt/virtual/server.img -s 100 -c /home/2008x64.iso --accelerate --os-type=windows --os-variant=win2k8 -v --vnc

    Слежу за установкой через TightVNC.
    В вышепривеленной команде серверу выделяется совсем мало ОЗУ. Это не от жадности. Я пробовал давать 30Gb и процесс встает на том же месте.
    Debian (host system) 8.4 64 bits. Windows 2008, так же 64 битный.
    Может быть винда затыкается из-за не настроенной сети/сетевой карты?
    Господа, помогите! Время поджимает со страшной силой!
    Отвечу на все наводящие вопросы для прояснения задачи.
      И снова здравствуйте!
      Хочется поблагодарить все сообщество за посильную помощь и поддержку :)
      Кое что удалось решить. Кое что нет.
      Установка W2008 виснет на "Starting Windows". Это победить не удается ни как! Что за напасть и куда копать - не представляю.
      Однако, удалось перенести, уже установленный на другой виртуалке, w2008.
      Честно, я не сильно заморачивался. Вновь создал установку w2008, она благополучно зависла. Выбил ее, потом переписал /etc/libvirt/qemu/server.xml от рабочей версии W2008. По указанному в "оригинальном" (установочном) конфиге переписал img с рабочим w2008.
      Далее, поправил xml, изменив bridge на NAT.
      ExpandedWrap disabled
        <!--    <interface type='bridge'>
              <mac address='52:54:00:2b:07:b5'/>
              <source bridge='br0'/>
              <model type='rtl8139'/>
              <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
            </interface> -->
            <interface type='network'>
              <mac address='52:54:00:2b:07:b5'/>
              <source network='default'/>
            </interface>

      И стартанул отредактированную машину: virsh -c qemu:///system start server
      w2008 нормально стартовал.

      Еще раз поясню по настройке сети. Для моих нужд, т.е. что бы виртуальная машина была не доступна на прямую из интернет, но была доступна для VPN, мне не нужен bridge. Тут вполне подходит дефолтный NAT, который есть "искаропки", но в Debian не активен. Сначала нужно его запустить: virsh net-autostart default.

      В общем: работает! Только понять не могу почему намертво виснет установка w2008 :wall:
      Из-за не решенной проблемы с установкой w2008 пока не ставлю "решено". Вдруг кому-то придет в голову решение.

      PS
      Если кому-то интересно могу выложить "мануал" по приобретению "железного" сервера на Hetzner, а так же установка на него Debian из Hetzner репозитория (тут особых подводных камней нет, но все таки...) и "допил" установленного Debian.

      PSPS Сервер на Hetzner i7, 48Gb ОЗУ, 2x2Tb SATA HDD. 30Tb траффика в месяц на скорости 1Gb, по превышении лимита траффика скорость падает до 50Mb. Сие удовольствие мне обошлось в 29 евро в месяц, без единовременной платы за установку сервера, а это, ни много ни мало, а 79 евро для серверов серии EX41. Кстати, там еще и абонетская плата 39 евро в месяц, а я "оторвал" за 29.
      Очень советую, перед приобретением сервера заглянуть на "аукцион" http://serverboerse.de/ru/ там можно взять ссервер дешевле.
      Сообщение отредактировано: HighMan -
        Поделюсь опытом по кошерному переносу виртуальной машины с сервера на сервер.
        Понятно, что есть migration, но чуть копнув эту тему в восторге отскочил. Такое мог придумать лишь истинный извращенец!
        В общем, решил снова переносить ручками. Тем более, что выше я уже указал методу.
        Ага. Метода. Но корявая.
        В общем, поковырявшись, я проторил тропинку к хорошему результату.
        На сервере доноре запускаем виртуальную машину.
        ExpandedWrap disabled
          virsh dumpxml servername > /home/user/server.xml

        virsh выгружает самую актуальную информацию по настройке виртуальной машины.
        ExpandedWrap disabled
          virsh -c qemu:///system list --all

        Любуемся состоянием всех виртуалок системы. Выбранная для переноса должна быть running. Будем для простотЫ (или простАты) называть ее server.
        Глушим виртуальную машину.
        ExpandedWrap disabled
          virsh -c qemu:///system shutdown server

        Shutdown - наиболее щадящий способ остановить сторонними средствами виртуалку. Может потребоваться какое-то время gока она не станет Shut off. А можем и не дождаться. Если ложиться она не собирается, то берем в руки лом...
        ExpandedWrap disabled
          virsh -c qemu:///system destroy server

        Против лома нет приема. Это как кнопочка reset, от которой стали отказываться некоторые производители, лелея себя надеждой, что жесткий reset их продукции не понадобится.
        В общем, так или иначе, но server перешел таки в состояние shut off.
        Теперь копируем файл с содержимым server на другой сервер. Копируем любым удобным способом. Хоть дискетками таскайте.
        Ой! Маловато! Ма-ла-ва-та! Нам еще нужен /home/user/server.xml
        Скорее всего, этого так жк будем мало, т.к. к server прилегали диски, которые так же располагались в файлах..
        Тут ваш выбор. Нужны эти диски или нет. Если перетаскивали server.img на дискетках, то скорее всего, решите забить болт на диски. Если копировали через pscp, то вкрутите гвоздь.
        Если решено отказаться от "дисков", то лезем в server.xml и коментируем разделы подключения дисков
        ExpandedWrap disabled
          <!-- <disk type='file' device='disk'>
                <driver name='qemu' type='qcow2'/>
                <source file='/opt/virtual/bigdisk.qcow2'/>
                <backingStore/>
                <target dev='hdc' bus='virtio'/>
                <alias name='virtio-disk2'/>
                <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
              </disk> -->

        Если диски все таки нужны, то вновь вооружаемся дискетками и начинаем перенос файла диска.
        Такс. Вроде все необходимое перетащили на новый сервер. Теперь осталось раскидать все по местам.
        Самый простой способ: раскидать все по тем же путям, что были на сервере-доноре. Если же вам это не нравится, то вновь лезем и правим server.xml.
        Наконец! Файлы-диски лежат по местам, xml поправлен. Уффф..
        Теперь, внезапно, вспоминаем, что на новом сервере не стоит qemu/libvirt и принимаемся за установку!
        Ага. Щас! Не стану вам это рассказывать. Сами нагуглите, благо ничего сложного нет.
        qemu, kvm стоит.
        Теперь осталось скормить принесенную систему виртуалке.
        ExpandedWrap disabled
          virsh define server.xml

        Если мы ничего не напахади, или напахали но virsh не заметил, то virsh задефинит server.xml
        ExpandedWrap disabled
          virsh -c qemu:///system list --all

        Вот он!!! Сервер перенесен!
        Аха. Щазззз!
        ExpandedWrap disabled
          virsh -c qemu:///system start server

        Если видим ругань, значит мы сделали что-то не так...
        Если ругается, то хотя бы информирует о том, что ему не нравится. Может путь к файлам-дискам указали не верно. Правим.
        Снова дефиним.
        После любых манипуляций с xml
        ExpandedWrap disabled
          virsh define server.xml

        Может оказаться что "сеть" не совпадает. Например у вас был bridge а перенесли в nat.
        Лезем в server.xml и меняем
        ExpandedWrap disabled
           <interface type='network'>
                <mac address='55:54:00:09:47:ac'/> <!-- mac address -->
                <source network='default'/>
                <model type='virtio'/> <!-- тут желательно, именнно, virtio -->
                <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
              </interface>

        Отредактировали. Запускаем. Снова ругается.
        Мля! Да у нас же сеть default спит.
        Проверяем:
        ExpandedWrap disabled
          virsh net-list -all

        Точно! Default спит! Будим раз и навсегда
        ExpandedWrap disabled
          virsh net-autostart default

        Разбудили? Щаззз! Default продолжает спать. Ему просто сказали, что нужно просыпаться, когда стартует qemu. Типа, завели будильник. Теперь нам нужно его разбудить не когда нибудь, а сейчас! Берем в руки будильник и лупим им по бащке default
        ExpandedWrap disabled
          virsh net-start default

        Стартуем сервер и если все сделали правильно то sever оживет.

        Теперь, когда у нас все заработало, то вспомним полезные команды управления виртуальной машиной.
        Напомню лишь те, которые "редактируют" виртуальную машину, да и то лишь малую часть
        ExpandedWrap disabled
          virsh setmaxmem server 4096 # устанавливаем максимальный размер ОЗУ для server 4Mb. Работает только с выключенным server
          virsh setmem server 4096 # устанавливаем доступный размер ОЗУ в 4Mb (не должно быть более maxmem). Работает только с запущенным server
          virsh attach-device server device.xml

        Чуть задержусь на последней команде. Она позволяет добавить device в server. Тут я советую пользоваться xml файлом с описанием девайса, что бы не писать жуткие конструкции. Ниже привожу xml для добавления диска
        ExpandedWrap disabled
          <disk type='file' device='disk'>
                <driver name='qemu' type='qcow2'/>
                <source file='/opt/virtual/virtio.qcow2'/>
                <target dev='hdc' bus='virtio'/>
          </disk>


        Теперь немного поясню всю вышеописанную лабуду.
        Рукоблудства по переносу виртуалки на другой сервер в ручном режиме я не нашел. Пришлось изобретать на ходу. Первый способ с созданием одноименного сервера и подстановкой нужных файлов кривой до невозможности. Куда лучше работать через virsh define.
        Так же, очень мало информации о сети. Нет! Инфы много, но толку в ней NULL. Прочухать какую настройку использовать для конкретной ситуации можно лишь самому. Рускоязычный интернет, по ходу, не в курсе для чего NAT. Все используют bridge.
        Мне как раз подошел NAT. Из интернет не видно, а настроить для VPN элементарно. Пару правил в iptables, если стоит -P FORWAED DROP. Если ACCEPT, то, вообще, ничего не нужно.
        И знатоков прошу не пинать, если что-то написал не оптимально. Это плод моих извращений в течении дня.
        Сообщение отредактировано: HighMan -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0302 ]   [ 15 queries used ]   [ Generated: 23.04.24, 12:37 GMT ]