ライン

ポイント:*

ライン

 準備

 CentOS 6.9を自宅サーバに入れてみました。元々は何が導入されていたのか忘れてしまったので、ノーチェックで上書きしました。
NEC Express5800/S70で、メモリー16GでCPUは4Core。
KVMの設定を入れて、忘れかけているKVMを設定し直してみます。

 インストールはminimalでほぼオート。3本のHDDのうち、2本を使っていました。
まずは、パッケージの更新から。

# yum update
...
依存性を解決しました

================================================================================
===============================
 パッケージ                  アーキテクチャ     バージョン                           リポジトリー         容量
================================================================================
===============================
インストールしています:
 kernel                      x86_64             2.6.32-696.1.1.el6                   updates              32 M
更新:
 binutils                    x86_64             2.20.51.0.2-5.47.el6_9.1             updates             2.8 M
 curl                        x86_64             7.19.7-53.el6_9                      updates             197 k
 glibc                       x86_64             2.12-1.209.el6_9.1                   updates             3.8 M
 glibc-common                x86_64             2.12-1.209.el6_9.1                   updates              14 M
 kernel-firmware             noarch             2.6.32-696.1.1.el6                   updates              29 M
 libcurl                     x86_64             7.19.7-53.el6_9                      updates             169 k
 nss                         x86_64             3.28.4-1.el6_9                       updates             880 k
 nss-sysinit                 x86_64             3.28.4-1.el6_9                       updates              51 k
 nss-tools                   x86_64             3.28.4-1.el6_9                       updates             446 k
 nss-util                    x86_64             3.28.4-1.el6_9                       updates              68 k
 tzdata                      noarch             2017b-1.el6                          updates             455 k

トランザクションの要約
================================================================================
===============================
インストール         1 パッケージ
アップグレード      11 パッケージ

総ダウンロード容量: 84 M
これでいいですか? [y/N]

これまでの脆弱性等をアップデートできました。
.bashrcに以下を追加。

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

以下のようにして反映しました。

# source .bashrc

作業用のユーザを準備します。

# groupadd -g 1001 foo
# useradd -u 1001 -d /home/foo -m -s /bin/bash foo -g foo  -G wheel
# passwd foo

sshのディレクトリ用意して

$ echo "ssh-rsa ~" >> authorized_keys
$ chmod 600 authorized_keys

で、その後にログインできるようになったことを確認。
/etc/pam.d/su で1行コメントを削除。/etc/ssh/sshd_config にrootでのログインをやめるように記載。
毎度で、一般利用者のいないサーバは、AllowGroups wheelも加える。

SELinuxの設定もこれまでに同じ。/etc/sysconfig/selinuxを編集する。
このあとリブートすると、懐かしい Kernel panicの文字列が…。"not syncing : Attenpten to kill init!"というやつだ。
仮想環境に慣れすぎて久々に見た感じだ。
サーバを再起動して、メニューが出るように、スペースなどを押して GNU GRUBのメニューを表示。
起動する側のカーネルに合わせて、kernel箇所でeで編集。末尾に enforcing=0 を入れて戻り、bを押して再起動する。
これで復活。後は起動したら以下のようにgrub.confに加筆しておいて次回以降に準備して終わり。

# diff -urN /boot/grub/grub.conf_orig /boot/grub/grub.conf
--- /boot/grub/grub.conf_orig   2017-04-30 12:41:01.000000000 +0900
+++ /boot/grub/grub.conf        2017-04-30 13:52:34.000000000 +0900
@@ -13,9 +13,9 @@
 hiddenmenu
 title CentOS (2.6.32-696.1.1.el6.x86_64)
        root (hd1,0)
-       kernel /vmlinuz-2.6.32-696.1.1.el6.x86_64 ro root=/dev/mapper/vg_centos69-lv_root rd_NO_LUKS
 rd_LVM_LV=vg_centos69/lv_swap rd_NO_MD rd_LVM_LV=vg_centos69/lv_root crashkernel=auto
  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
+       kernel /vmlinuz-2.6.32-696.1.1.el6.x86_64 ro root=/dev/mapper/vg_centos69-lv_root rd_NO_LUKS 
rd_LVM_LV=vg_centos69/lv_swap rd_NO_MD rd_LVM_LV=vg_centos69/lv_root crashkernel=auto
  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet enforcing=0
        initrd /initramfs-2.6.32-696.1.1.el6.x86_64.img
 title CentOS 6 (2.6.32-696.el6.x86_64)
        root (hd1,0)
-       kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/mapper/vg_centos69-lv_root rd_NO_LUKS
 rd_LVM_LV=vg_centos69/lv_swap rd_NO_MD rd_LVM_LV=vg_centos69/lv_root crashkernel=auto
  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
+       kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/mapper/vg_centos69-lv_root rd_NO_LUKS
 rd_LVM_LV=vg_centos69/lv_swap rd_NO_MD rd_LVM_LV=vg_centos69/lv_root crashkernel=auto
  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet enforcing=0
        initrd /initramfs-2.6.32-696.el6.x86_64.img

ここにはIPv6が来ているけど、乗り込んで来られても邪魔なので、

# vi /etc/sysconfig/network
---
NETWORKING_IPV6=no
---
# vi /etc/modprobe.d/disabled_ipv6.conf
---
options ipv6 disable=1
---

のようにしておきます。

これで親機としてのOSの準備は完了。

 KVM

パッケージ

前回は、kvm libvirt kvm-qemu-img bridge-utils python-virtinstというセットを追加したっぽいけど。

# yum install qemu-kvm
...
依存性を解決しました

================================================================================
===============================
 パッケージ                          アーキテクチャ    バージョン                        リポジトリー     容量
================================================================================
===============================
インストールしています:
 qemu-kvm                            x86_64            2:0.12.1.2-2.503.el6              base            1.6 M
依存性関連でのインストールをします。:
 alsa-lib                            x86_64            1.1.0-4.el6                       base            389 k
 celt051                             x86_64            0.5.1.3-0.el6                     base             50 k
 flac                                x86_64            1.2.1-7.el6_6                     base            242 k
 glusterfs                           x86_64            3.7.9-12.el6                      base            422 k
 glusterfs-api                       x86_64            3.7.9-12.el6                      base             58 k
 glusterfs-client-xlators            x86_64            3.7.9-12.el6                      base            1.1 M
 glusterfs-libs                      x86_64            3.7.9-12.el6                      base            313 k
 gnutls                              x86_64            2.12.23-21.el6                    base            389 k
 gpxe-roms-qemu                      noarch            0.9.7-6.16.el6                    base            222 k
 libICE                              x86_64            1.0.6-1.el6                       base             53 k
 libSM                               x86_64            1.2.1-2.el6                       base             37 k
 libX11                              x86_64            1.6.4-3.el6                       base            587 k
 libX11-common                       noarch            1.6.4-3.el6                       base            171 k
 libXau                              x86_64            1.0.6-4.el6                       base             24 k
 libXext                             x86_64            1.3.3-1.el6                       base             35 k
 libXi                               x86_64            1.7.8-1.el6                       base             38 k
 libXtst                             x86_64            1.2.3-1.el6                       base             19 k
 libasyncns                          x86_64            0.8-1.1.el6                       base             24 k
 libjpeg-turbo                       x86_64            1.2.1-3.el6_5                     base            174 k
 libogg                              x86_64            2:1.1.4-2.1.el6                   base             21 k
 libsndfile                          x86_64            1.0.20-5.el6                      base            233 k
 libusb1                             x86_64            1.0.9-0.7.rc1.el6                 base             80 k
 libvorbis                           x86_64            1:1.2.3-4.el6_2.1                 base            168 k
 libxcb                              x86_64            1.12-4.el6                        base            180 k
 lzo                                 x86_64            2.03-3.1.el6_5.1                  base             55 k
 pixman                              x86_64            0.32.8-1.el6                      base            243 k
 pulseaudio-libs                     x86_64            0.9.21-26.el6                     base            463 k
 qemu-img                            x86_64            2:0.12.1.2-2.503.el6              base            844 k
 seabios                             x86_64            0.6.1.2-30.el6                    base             93 k
 sgabios-bin                         noarch            0-0.3.20110621svn.el6             base            6.6 k
 snappy                              x86_64            1.1.0-1.el6                       base             39 k
 spice-server                        x86_64            0.12.4-16.el6                     base            347 k
 usbredir                            x86_64            0.5.1-3.el6                       base             41 k
 vgabios                             noarch            0.6b-3.8.el6                      base             42 k

トランザクションの要約
================================================================================
===============================
インストール        35 パッケージ

総ダウンロード容量: 8.7 M
インストール済み容量: 28 M
これでいいですか? [y/N]

という感じにしてみた。やっぱり、virt関連入ってこなかった。

# yum install python-virtinst
...
依存性を解決しました

================================================================================
===============================
 パッケージ                         アーキテクチャ      バージョン                     リポジトリー       容量
================================================================================
===============================
インストールしています:
 python-virtinst                    noarch              0.600.0-31.el6                 base              539 k
依存性関連でのインストールをします。:
 ConsoleKit                         x86_64              0.4.1-6.el6                    base               83 k
 ConsoleKit-libs                    x86_64              0.4.1-6.el6                    base               18 k
 avahi-libs                         x86_64              0.6.25-17.el6                  base               55 k
 cvs                                x86_64              1.11.23-16.el6                 base              712 k
 cyrus-sasl-md5                     x86_64              2.1.23-15.el6_6.2              base               47 k
 dbus                               x86_64              1:1.2.24-8.el6_6               base              207 k
 dmidecode                          x86_64              1:2.12-7.el6                   base               74 k
 eggdbus                            x86_64              0.6-3.el6                      base               91 k
 gettext                            x86_64              0.17-18.el6                    base              1.8 M
 gnutls-utils                       x86_64              2.12.23-21.el6                 base              109 k
 hal                                x86_64              0.5.14-14.el6                  base              375 k
 hal-info                           noarch              20090716-5.el6                 base               57 k
 hal-libs                           x86_64              0.5.14-14.el6                  base               69 k
 hdparm                             x86_64              9.43-4.el6                     base               81 k
 libgomp                            x86_64              4.4.7-18.el6                   base              134 k
 libnl                              x86_64              1.1.4-2.el6                    base              121 k
 libselinux-python                  x86_64              2.0.94-7.el6                   base              203 k
 libvirt-client                     x86_64              0.10.2-62.el6                  base              4.1 M
 libvirt-python                     x86_64              0.10.2-62.el6                  base              505 k
 libxml2-python                     x86_64              2.7.6-21.el6_8.1               base              325 k
 nc                                 x86_64              1.84-24.el6                    base               57 k
 numactl                            x86_64              2.0.9-2.el6                    base               74 k
 perl                               x86_64              4:5.10.1-144.el6               base               10 M
 perl-Module-Pluggable              x86_64              1:3.90-144.el6                 base               41 k
 perl-Pod-Escapes                   x86_64              1:1.04-144.el6                 base               33 k
 perl-Pod-Simple                    x86_64              1:3.13-144.el6                 base              213 k
 perl-libs                          x86_64              4:5.10.1-144.el6               base              579 k
 perl-version                       x86_64              3:0.77-144.el6                 base               52 k
 pm-utils                           x86_64              1.2.5-11.el6                   base              108 k
 polkit                             x86_64              0.96-11.el6                    base              162 k
 yajl                               x86_64              1.0.7-3.el6                    base               27 k

トランザクションの要約
================================================================================
===============================
インストール        32 パッケージ

総ダウンロード容量: 21 M
インストール済み容量: 69 M
これでいいですか? [y/N]
...
# chkconfig --list|grep virt
libvirt-guests  0:off   1:off   2:on    3:on    4:on    5:on    6:off

# service libvirt-guests start
# yum install libvirt
...
依存性を解決しました

================================================================================
===============================
 パッケージ                アーキテクチャ   バージョン                                    リポジトリー    容量
================================================================================
===============================
インストールしています:
 libvirt                   x86_64           0.10.2-62.el6                                 base           2.4 M
依存性関連でのインストールをします。:
 augeas-libs               x86_64           1.0.0-10.el6                                  base           314 k
 dnsmasq                   x86_64           2.48-17.el6                                   base           150 k
 ebtables                  x86_64           2.0.9-6.el6                                   base            95 k
 keyutils                  x86_64           1.4-5.el6                                     base            39 k
 libcgroup                 x86_64           0.40.rc1-23.el6                               base           131 k
 libevent                  x86_64           1.4.13-4.el6                                  base            66 k
 libgssglue                x86_64           0.1-11.el6                                    base            23 k
 libpcap                   x86_64           14:1.4.0-4.20130826git2dbcaa1.el6             base           131 k
 libtirpc                  x86_64           0.2.1-13.el6                                  base            82 k
 libxslt                   x86_64           1.1.26-2.el6_3.1                              base           452 k
 lzop                      x86_64           1.02-0.9.rc1.el6                              base            50 k
 netcf-libs                x86_64           0.2.4-4.el6                                   base            64 k
 nfs-utils                 x86_64           1:1.2.3-75.el6                                base           336 k
 nfs-utils-lib             x86_64           1.1.5-13.el6                                  base            71 k
 numad                     x86_64           0.5-12.20150602git.el6                        base            31 k
 parted                    x86_64           2.1-29.el6                                    base           608 k
 python-argparse           noarch           1.2.1-2.1.el6                                 base            48 k
 radvd                     x86_64           1.6-1.el6                                     base            75 k
 rpcbind                   x86_64           0.2.0-13.el6                                  base            51 k
 xz                        x86_64           4.999.9-0.5.beta.20091007git.el6              base           137 k

トランザクションの要約
================================================================================
===============================
インストール        21 パッケージ

総ダウンロード容量: 5.3 M
インストール済み容量: 15 M
これでいいですか? [y/N]
...
# service libvirtd start

とりあえず、あっているか先に進める。

# cd /etc/sysconfig/network-scripts/
# cp -p ifcfg-eth0 ifcfg-br0
# vi ifcfg-eth0
---
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
---

コピーで準備した側の設定も加えます。

# vi ifcfg-br0
---
DEVICE=br0
#TYPE=Ethernet
TYPE=Bridge
ONBOOT=yes

IPADDR=192.168.1.200
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
---
# service network restart

これでbr0が使えるようになりました。
名前の解決で文句が来るので、自ホストの登録を /etc/hostsに入れておきましょう。

最後にきれいにしておきます。

# virsh net-list --all
名前               状態     自動起動  永続
--------------------------------------------------
default              動作中  はい (yes)  はい (yes)
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.8c89a51da2d3       no              eth0
virbr0          8000.525400d60f24       yes             virbr0-nic
# virsh net-destroy default
ネットワーク default は強制停止されました

# virsh net-autostart default --disable
ネットワーク default の自動起動設定が解除されました

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.8c89a51da2d3       no              eth0

導入パッケージがこれで良いのかはいまいちな感じではありますが、まずは動くのではという感じです。

 ゲストOS

 ネットワークインストールの例が
CentOS 6 - KVM - 仮想マシン作成#1 : Server World
にありましたので、参考に実施してみることにしました。

virt-install \
--name centos6 \
 --ram 2048 \
 --disk path=/home/kvm/images/cenos6.img,size=40 \
 --vcpus 2 \
 --os-type linux \
 --os-variant rhel6 \
 --network bridge=br0 \
 --graphics none \
 --console pty,target_type=serial \
 --location 'http://ftp.jaist.ac.jp/pub/Linux/CentOS/6/os/x86_64/' \
 --extra-args 'console=ttyS0,115200n8 serial' 

という感じにしました。
さくっとはいった感じです。 Ctrl + ] で元サーバに戻ってきます。

# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 3     centos6                        実行中
# virsh console centos6
ドメイン centos6 に接続しました
エスケープ文字は ^] です

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

localhost.localdomain login: root
Password:
Last login: Sun Apr 30 10:46:48 on ttyS0
[root@localhost ~]#

ちゃんとDHCPでIPアドレスもついていて使えるようになっていました。

 親機にディスク追加

 何ともディスク容量が少ないので、ディスクを加えて遊ぶことにします。

# fdisk -l  /dev/sdc|grep sdc
ディスク /dev/sdc: 320.1 GB, 320072933376 バイト

この程度の容量があれば少しはゲスト増やせそうです。

# fdisk /dev/sdc

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-38913, default 1):
Using default value 1
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-38913, default 38913):
Using default value 38913

コマンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

これで準備はできたはず。

# fdisk -l /dev/sdc|grep sdc
ディスク /dev/sdc: 320.1 GB, 320072933376 バイト
/dev/sdc1               1       38913   312568641   8e  Linux LVM

使えるように加えます。

# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created

加えた全部を与えます。

# vgdisplay|grep "VG Name"
  VG Name               vg_centos69
# vgextend vg_centos69 /dev/sdc1
  Volume group "vg_centos69" successfully extended
# lvdisplay|grep "LV Name"
  LV Name                lv_root
  LV Name                lv_home
  LV Name                lv_swap
# lvextend -l +100%FREE /dev/vg_centos69/lv_root
  Size of logical volume vg_centos69/lv_root changed from 50.00 GiB (12800 extents) to 348.09 GiB (89110 extents).
  Logical volume lv_root successfully resized.

ファイルの拡張を反映します。

# resize2fs /dev/vg_centos69/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_centos69/lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 22
Performing an on-line resize of /dev/vg_centos69/lv_root to 91248640 (4k) blocks.
The filesystem on /dev/vg_centos69/lv_root is now 91248640 blocks long.
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos69-lv_root
                      343G 1010M  325G   1% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sdb1             477M   52M  400M  12% /boot
/dev/mapper/vg_centos69-lv_home
                       90G  1.7G   83G   3% /home

できました。
でも、良く考えたら、/home/kvm以下に配置する例にしたんだから、lv_homeに増やすのが良かったのか…(笑)。
とりあえずお試しなので今回は良しとしました。

 FreeBSDのゲストOS

 さて、GWで空いている時間でお試しを続けてみました。
毎度でFreeBSDをゲストに入れます。ただし、導入時にコンソールで操作する手順を準備するのは手間だったので、
これまでの手順に類する方法にしました。

とりあえず、前の通りでディスクも容量ができたので、FreeBSDも入れてみることにしました。

# mkdir -p /opt/kvm/images
virt-install \
 --connect=qemu:///system \
 --name FreeBSD100 \
 --ram 1024 \
 --vcpus=1 \
 --os-variant=freebsd8 -v \
 --hvm \
 --virt-type=kvm \
 --accelerate \
 --disk path=/opt/kvm/images/freebsd100.img,size=80 \
 --cdrom /var/lib/libvirt/images/FreeBSD-11.0-RELEASE-amd64-disc1.iso \
 --vnc \
 --vncport=5902 \
 --vnclisten=0.0.0.0 \
 --network=bridge:br0  \
 --keymap=ja
---
Starting install...
ドメインを作成中...                                                             |    0 B     00:00
WARNING  Unable to connect to graphical console: virt-viewer not installed. Please install the 'virt-viewer' package.
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
# virsh list --all
 Id    名前                         状態
----------------------------------------------------
 1     centos6                        実行中
 5     FreeBSD100                     実行中

# netstat -lnt|grep 5902
tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN

 こんな感じにしました。
Windows 10にもUltraVNC Viewerは対応しているようでしたので、これを使って接続することでインストールは済ませることができそうです。
しかし、iptablesを忘れていました。
親機側に対応をします。

# vi /etc/sysconfig/iptables
--
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5930 -j ACCEPT
--
# /etc/init.d/iptables restart

 これで導入が開始できました。
この辺りは前回と同じなのでおおよそは割愛。
 リブートすると、OSは動作しますが、コンソールからは接続できません。
KVM Virsh Redirect FreeBSD Console To A Serial Port – nixCraft
のある感じでコンソール接続をするようにしました。
 まずは、iptablesも開けっ放しなので、VNCで設定を入れます。

--- /boot/loader.conf_orig      2017-05-02 10:50:24.383959000 +0900
+++ /boot/loader.conf   2017-05-02 11:14:38.801521000 +0900
@@ -0,0 +1 @@
+console="comconsole"
# diff -urN /etc/ttys_orig /etc/ttys
--- /etc/ttys_orig      2016-09-29 10:45:37.000000000 +0900
+++ /etc/ttys   2017-05-02 11:16:45.425318000 +0900
@@ -47,3 +47,6 @@
 ttyu3  "/usr/libexec/getty 3wire"      vt100   onifconsole secure
 # Dumb console
 dcons  "/usr/libexec/getty std.9600"   vt100   off secure
+
+# added by f.kimura
+ttyd0  "/usr/libexec/getty std.9600"   dialup  off secure

加えて、/boot.configに -D を加えたファイルを準備しておくと、双方のコンソールに表示されてくるようになるので安心です。

 この後、再起動させた後は、Linux同様にコンソール接続ができるようになりました。

 VirtIO Device ドライバ関連を確認します。
古いOSだとportsなどから導入をしますが、FreeBSD 11では既に不要です。

console="comconsole"
#virtio_load="YES"
#virtio_pci_load="YES"
#virtio_blk_load="YES"
#if_vtnet_load="YES"

こんな感じにしても、問題なく以下のようになりました。

# kldstat -v|grep virt
                308 virtio_pci/virtio_scsi
                307 virtio_pci/virtio_balloon
                306 virtio_pci/virtio_blk
                305 virtio_mmio/virtio_blk
                304 virtio_pci/vtnet
                303 virtio_mmio/vtnet
                302 pci/virtio_pci
                301 virtio

ただ、ディスク(Vultr Block Storage devices)が

# ls -al /dev/vtbd*
ls: No match.

と見えてこない。
ゲストOSの設定は、 /etc/libvirt/qemu以下にあるので確認する。
とりあえずバックアップを取ってから編集してみる。

# virsh edit FreeBSD100

なんかすっごく久々な感じだ。
うーん、問題は感じない。
実はディスク速いかな。

# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 1.9406 s, 553 MB/s

# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 15.329288 secs (70045122 bytes/sec)

上が親機で下が、ゲスト。これは厳しいかな。
もう1つ別のページを参考に準備してみようと思います。
How to install KVM on Ubuntu 16.04 LTS Headless Server – nixCraft
にある例を真似てみます。

virt-install \
 --virt-type=kvm \
 --name freebsd110 \
 --ram 1024 \
 --vcpus=1,maxvcpus=1 \
 --os-variant=freebsd8 \
 --hvm \
 --cdrom /var/lib/libvirt/images/FreeBSD-11.0-RELEASE-amd64-disc1.iso \
 --network=bridge=br0,model=virtio \
 --vnc \
 --vncport=5901 \
 --vnclisten=0.0.0.0 \
 --disk path=/var/lib/libvirt/images/freebsd110.qcow2,size=40,bus=virtio,format=qcow2 \
 --keymap=ja

余談、準備しているOSが11.0なのに100というネーミングがおかしかったので、ちょうど良いかも。
…で試す。

# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 27.752253 secs (38690257 bytes/sec)

えー。ダメじゃん。こっちの方が遅いよ。
2度試したけど変化なし。

# df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/vtbd0p2     37G    2.4G     31G     7%    /
devfs           1.0K    1.0K      0B   100%    /dev

ネットも確かに、vtnet0になっているし、良さげなのに。
条件が違わないように、似た感じにして再度作成。

virt-install \
 --name freebsd1101 \
 --ram 1024 \
 --vcpus=1 \
 --os-variant=freebsd8 -v\
 --hvm \
 --virt-type=kvm \
 --accelerate \
 --disk path=/var/lib/libvirt/images/freebsd110.img,size=80,bus=virtio \
 --cdrom /var/lib/libvirt/images/FreeBSD-11.0-RELEASE-amd64-disc1.iso \
 --network=bridge=br0,model=virtio \
 --vnc \
 --vncport=5901 \
 --vnclisten=0.0.0.0 \
 --keymap=ja

で試す。

% dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 15.048204 secs (71353486 bytes/sec)

当初と変わらない感じだな。

では、最初に準備しているCentOS6の仮想でどの程度が出るのかを見る。

# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 9.79782 s, 110 MB/s
# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 11.9357 s, 90.0 MB/s
# dd if=/dev/zero of=testfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 11.3565 s, 94.5 MB/s

FreeBSDほどではないが、やっぱり低速。

最後に入れたFreeBSDに戻って、BSサイズを変更してみる。

# dd if=/dev/zero of=testfile bs=512 count=1048576
1048576+0 records in
1048576+0 records out
536870912 bytes transferred in 7.578764 secs (70838850 bytes/sec)

Linuxのゲストも

# dd if=/dev/zero of=testfile bs=512 count=1048576
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB) copied, 2.74315 s, 196 MB/s

こんな感じ。動くんだからいいじゃん、っていうことで良しでいいかな。

 Windows2012R2

 結局試しました。
まず、ドライバは、さくっと

# curl -sSL https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso > /tmp/virtio-win.iso

として入手して、同様の位置に移動させました。
さてインストールは、これまでの通りに、

# virt-install \
 --arch=x86_64 \
 --name windows2012r2 \
 --ram 4096 \
 --vcpus=1 \
 --hvm \
 --disk path=/var/lib/libvirt/images/windows2012r2.img,size=80,bus=virtio,cache=none,sparse=false \
 --disk 'device=cdrom,path=/var/lib/libvirt/images/virtio-win.iso'  \
 --cdrom /var/lib/libvirt/images/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_JA-JP-IR3_SSS_X64FREE_JA-JP_DV9.ISO \
 --os-type windows \
 --os-variant win2k8 -v \
 --network=bridge=br0,model=virtio \
 --vnc \
 --vncport=5903 \
 --vnclisten=0.0.0.0 \
 --keymap=ja \
 --noautoconsole

Starting install...
ドメインを作成中...                                                             |    0 B     00:00
Domain installation still in progress. Waiting for installation to complete.

投入しています。ファイルがこの位置になっているのは、異様に時間がかかって進まなかったためで、原因調査はしていないです。
また、CDの記述が2通りになっているのも同様で、普通に記載してもうまく見えてきませんでした。
どこかでまともなパターンを確認したいですが、面倒で放置するかも…。

 
 
 
 
 
 
 
 
 
 
 
 
 

導入完了までたどり着きました。
Windows Updateを実施していますが、メモリー? ディスクの問題? により結構重い状態です。
タスクマネージャーみる感じでは、CPUが100%近いです。
1コア、4GBのマシンということなのでこんな感じなのかも知れません。

 最後に

 4台を平行に動作させていますが、なんとか動いているようです。
テストマシンを作る程度には手軽かも知れないです。


【改訂履歴】作成:2017/04/30  改訂: 2017/05/03


【参考リンク】

VirshコマンドによるKVMゲストOSの管理 - Qiita
KVMゲストOSを削除する - Qiita
CentOS 6 - KVM - 仮想マシン作成#1 : Server World

Copyright © 1996,1997-2006,2007- by F.Kimura,