Operating System Lecture No.11 仮想化技術

Menu Menu


仮想化とは?

PC device そのものをシミュレーションして、アプリケーションをPCに見せる。

その上で、OS自体を動かす。


仮想化の利点

複数のOSを稼働

アーキテクチャが異なっても良い (実行時変換)


Snapshot


Migration


Sandbox


互換性


テスト


仮想化を実現するのに必要なアーキテクチャサポート

   movl %pc, %eax

などの特権リソースにアクセスする部分をすべて、トラップする必要がある

仮想化のオーバヘッド

トラップのオーバヘッドを見掛け上なくす

cf. Intel VT


Semantic GAP

仮想マシン側から、仮想OSの資源管理に手を出せるか?

仮想OSを知らないと出来ない

仮想OSのバージョンはさまざま

なので、乗り越えるのは難しい


既存の仮想化技術

VMware

KVM

Virtual Box

VMware Fusion

Hpyer-V


ホスト型とハイパーバイザー型


Blade Server


kvm and GFS2


Hyperviser の操作

   vSphere
   virsh
       ie-virsh


資源の管理と権限

vSphere を立ち上げて login する

さまざまな情報を見る

Windows 側に DNS domain search の設定をする


VM image の構造

Disk Image


OVF

OVF 変換ツール


学科の KVM

os.cr.ie.u-ryukyu.ac.jp (dalmore) に ssh で login する

    os.cr.ie.u-ryukyu.ac.jp:/usr/local/bin/ie-virsh
    os.cr.ie.u-ryukyu.ac.jp:/usr/local/bin/newvm.py

newvm.py は、ユーザは直接には使わない。ie-virsh が呼び出します。

    ie-virsh define 03
    ie-virsh define students/e01/e015722/03

students/y01/e015722/03 という vm を作る。01-04 まで。

valid な vm name は、

    students/e01/e015722/03
    teachrs/kono/03

ですが、01 だけで良いはずです。

など。そういう規約です。

 /etc/libvirt/qemu/fedora16.xml 

を template として使ってます。

image は、/media/iscsi/students/301/e015722/03.qcow2 などにに置く。

image は、cow2 にするか、dalmore ( os.cr.ie.u-ryukyu.ac.jp) 上で、

 qemu-img convert -O qcow2 Fedora24.vdi /media/iscsi/teachers/kono/01.qcow2

のように変換します。

    ie-virsh list 
    ie-virsh start students/e01/e015722/03
    ie-virsh dumpxml students/e01/e015722/03
    ie-virsh destroy students/e01/e015722/03
    /etc/libvirt/qemu/students
    /var/lib/libvirt/qemu/students
    /var/log/libvirt/qemu/students
    /var/run/libvirt/qemu/students

あたりがいじられます。

    ie-virsh undefine students/e01/e015722/03

imgは、そのまま残るので注意。


VM への access

VNC の port を

    ie-virsh dumpxml students/e01/e015722/03

仮想マシンの console へ login。

    ie-virsh console [01 - 04]

console へ login するためには設定が必要。

/etc/default/grub に以下を付け加える。(あるいは /boot/grub2/grub.conf の先頭に)

    GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

これからbootのgrub.cfgを生成する。

    grub2-mkconfig --output=/boot/grub2/grub.cfg


ssh tunnel

os.cr に ssh tunneling で接続します。xxx は自分で選択した番号に置き換えます。ssh tunnel の方法は man ssh で。

    ssh -L 10024:localhost:5912 -N  os.cr.ie.u-ryukyu.ac.jp

これで、localhost:10024 に Cot VNC などで接続してください。Password が付いているので、注意。

VNC の mac address を xml から確認して、学科のDNSに登録し、ssh を有効にすれば、ssh からでも接続できます。ただし、password 認証は使わないこと。public key を使って接続する。


VMの課題

問題11.1

Containerの課題

問題11.2

Cloud の課題

問題11.3

注意

使わない時には落としておくこと。安易な password は付けないこと。


Shinji KONO / Tue Dec 18 08:10:44 2018