Документ взят из кэша поисковой машины. Адрес оригинального документа : http://wiki.cs.msu.ru/Practicum/TechVM
Дата изменения: Unknown
Дата индексирования: Sun Apr 10 00:47:54 2016
Кодировка: koi8-r
TechVM < Practicum < Foswiki

Виртуальные системы для практикума, технические подробности

Подготовка образа к безопасному использованию

Образ виртуальной машины состоит из двух частей:
  • конфигурационный файл
  • образ диска + снимки

Образ проходит следующую подготовку (можете сделать и вы) для безопасности:
  • импортируется конфигурация (добавляется на тестовую машину)
  • отключается диск от машины
  • настройки диска меняются на multiattach
    • нельзя изменить, если диск используется/подключен
    • в этот момент создается пустой (2MB) снимок изменений (snapshot)
  • подключается обратно в машину
    • в конфигурации запоминается, что образ подключен как multiattach и что нужно использовать снимок.

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

Пример для SATA образа с Windows 10

Для Windows10 было выполнено:
  1. VBoxManage registervm /virtualbox/vms/Windows10/prac.win10.vbox
  2. VBoxManage list vms
    1. Убеждаемся, что добавилась, под каким именем
  3. VBoxManage showvminfo prac.win10
    1. Смотрим имя контроллера, куда подключен диск
    2. Имя:SATA, порт: 0
  4. VBoxManage storageattach prac.win10 --storagectl SATA --port 0 --medium none
  5. VBoxManage modifymedium disk /virtualbox/vms/Windows10/prac.win10.vdi --type multiattach
  6. VBoxManage storageattach prac.win10 --storagectl SATA --port 0 --type hdd --medium /virtualbox/vms/Windows10/prac.win10.vdi
  7. Для сохранения:
    • tar -cf - Windows10 | 7zr a -si -t7z -m0=lzma -mx=9 -mfb=64 -md=32m /mnt/data/Win10/Win10.tar.7z
    • Можно и просто 7zr, т.к. особенные права пользователям не нужны:
      • 7zr a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m /mnt/data/Win10/Win10.7z Windows10

Пример для IDE образа с Windows XP

После того как зашли в её директорию:
  1. VBoxManage registervm WinXP_Minimal.vbox
  2. VBoxManage list vms
    1. Убеждаемся, что добавилась, под каким именем (WinXP_Minimal)
  3. VBoxManage showvminfo WinXP_Minimal
    1. Смотрим имя контроллера, куда подключен диск
    2. Имя:IDE, порт: 0,0 * Значит порт 0 и устройство 0
  4. VBoxManage storageattach WinXP_Minimal --storagectl IDE --port 0 --device 0 --medium none
  5. VBoxManage modifymedium disk --type multiattach winxp_disk.vdi
  6. VBoxManage storageattach WinXP_Minimal --storagectl IDE --port 0 --device 0 --type hdd --medium winxp_disk.vdi
  7. Для сохранения только образа, без архива:
    • plzip -n 8 -k winxp_disk.vdi

Обновление образа

  • Переключаете диск обратно в normal
  • Обновляете
  • Переключаете в multiattach
  • сжимаете образ (7z/gzip/bzip2/...) и присылаете
    • т.к. изменений в конфигурации нет, то она не требуется
    • в вашей конфигурации пропишется и создаться другой снимок, чем в классах, но это не страшно, т.к. они отличаются лишь идентификаторами, а данных не содержат, поэтому на старой конфигурации, где прописано использование предыдущего пустого снимка, всё будет работать. А вот смешивать один файл конфигурации со снимком от другого уже нельзя.

Сравнение компрессоров

Был взят снимок от Linux-Ubuntu

тип компрессор время real/user размер декомпрессор время real/user
исходный cat 2m18.513s/0m0.048s 8304721920 cat 2m18.513s/0m0.048s
plzip plzip -n 8 -k olymp-linux.vdi 8m0.202s/63m8.660s 2919147664 plzip -d -n 8 -k olymp-linux.vdi.lz 2m25/4m13
7z lzma 7zr a -t7z -m0=lzma olymp-linux.7z olymp-linux.vdi 20m33.273s/36m11.004s 2867524309 7zr x olymp-linux.7z 3m52/2m46
parallel gzip (pigz) pigz -k olymp-linux.vdi 1m10.802s/5m15.928s 3538554722 unpigz -k olymp-linux.vdi.gz 1m44.298s/0m32.976s

Нужно ли сжимать образ

Для Windows XP:
  • исходный: 34434187264

Plzip:
  • сжатый образ: 15826428655
  • разливка на класс сжатого plzip образа: 10 мин
  • декомпрессия: 15 мин
Надо учесть еще предварительное сжатие (одно для всех классов): 34 минуты

Если не сжимать, то:
  • 22 мин (оценка)
Для классов со 100Mbit/s будет хуже

Pigz:
  • сжатый образ: 19747988523
  • разливка на класс сжатого gzip образа: 12 мин (оценка)
  • декомпрессия: 11 мин
Надо учесть еще предварительное сжатие (одно для всех классов): 8m12s

Вариант с tee (mbuffer -4 -I 9091 -s 128k -m 10000M | tee test.gz| unpigz -p 8 > test):
  • 7min 30.8sec

Если передавать образ (1GB от olymp-linux.vdi): ( dd | комрессор| mbuffer -> сеть -> mbuffer| декомпрессор | dd)
тип время (c)
cat 10
gzip -1 16
pigz -p 8 -1 4
plzip -n 8 -1 26
Вывод: можно сжать pigz и разжимать тоже им.

Устройство виртуализатора

  • /virtualbox: общее хранилище
    • /virtualbox/vms: хранение неизменяемых данных
    • /virtualbox/write: хранение изменяемых данных
    • /virtualbox/vbox: хранение данных для копирования/изменения для пользователя
    • /virtualbox/bin: скрипты, которые обеспечивают работу пользователя с VM:
      • shell: основной скрипт. Дальше он запускает либо скрипт выбора (если есть выбор), либо безальтернативный запуск
      • dialog: скрипт с выбором из меню. Левая часть - имя Vm
      • dialog-one: запуск одной системы
      • start-vm: подготовка и запуск VM
      • startvbox.sh: непосредственная команда запуска VM

Добавление образа

Положить неизменяемый образ в /virtualbox/vms, положить архив со снапшотом и vbox-файл в /virtualbox/vbox. Названия файлов == названию VM (смотри примеры в директории). Прописать VM в /virtualbox/bin/dialog, проверить файл /virtualbox/bin/shell

Изменение образа

Заменить образ в /virtualbox/vms, если изменился снапшот и/или vbox-файл, то обновить их в /virtualbox/vbox.
Topic revision: r1 - 17 Feb 2016, RomanKondakov
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback