筑波大学の1000台以上の端末で動いているBitVisor

これは [BitVisor Advent Calendar 2018](https://qiita.com/advent-calendar/2018/bitvisor) の15日目の記事です．

@y_oyama です．今日は，筑波大学ではBitVisorがこんなに使われているよという話をします．
@hdk_2 さんと @mmi さんのガチネタ交換日記のようになってきたこのカレンダーに，ゆるふわネタで殴り込みをかけますよ！


BitVisor Summit 7では品川先生が，BitVisorベースのvThriiが22の教育機関に計5690台普及しているというスライドを提示されていました（[発表スライド](https://www.slideshare.net/shinagawa/20181128-bitvisor-summit-7) の13枚目）．筑波大学は東京大学に次いで第2位の台数を運用しています．ちなみに第3位は早稲田大学のようです．

筑波大学では5つの図書館を含む16の拠点において計1000台以上のPC端末上でvThriiが稼働しています．導入して約1年9か月が経ちましたが，現在も学生の教育などに毎日活躍しています．
vThriiは主にネットワークブートやマルチブートの機能を端末に提供するために利用されています．端末上ではWindowsとUbuntuをマルチブートで切り替えて使うことができます．

端末室の全端末でvThriiを立ち上げると，このような光景が出現します．

![vThrii48.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/55f8b3a6-5edb-d277-99cd-17f5b509ac26.jpeg)

この写真にはディスプレイが何台あるか，皆様のディープラーニングは答えることができるでしょうか？
はい，答は48台です．
写真の右端の外にディスプレイがあと2台，教卓上に逆を向いたディスプレイが1台あるので，この部屋では計51台のディスプレイにvThriiの画面が出てきていることになります．

端末の電源を入れるとまずDELLのロゴが出てきます．

![dell.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/af2881f4-2128-c2dc-1ec6-5e3bab648a35.jpeg)

次にvThriiのロゴが出てきます．

![vthrii_logo.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/0838f1fe-82d7-5ba0-eb11-2d2755d85aea.jpeg)

その次にOS選択画面が出てきます．

![choose.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/1c4db9a3-9a4e-0024-67f8-a17280d6afb1.jpeg)

Windowsを選ぶと，サインインのユーザ名とパスワードを入力する画面が出てきます．

![signin.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/891b44da-5bd7-a791-be69-3475a500ef8a.jpeg)

サインインに成功するとデスクトップが出てきます．

![desktop.jpg](https://qiita-image-store.s3.amazonaws.com/0/105071/4c80b2ec-6048-d9e2-8889-6a7dad72542b.jpeg)

所要時間は以下の通りです．この時間は，その時点でのサーバの負荷や個人の設定データの多寡に大きく影響されます．設定データが少ないユーザなら，もっと早くサインインが終わるはずです．

|区間|所要時間|
|------------------------------------------|----|
| 電源ボタンを押してからOS選択画面が出るまで  |約15秒|
|Windowsを選んでからサインイン画面が出るまで  |約20秒|
|パスワードを入力し終えてからデスクトップで操作ができるようになるまで|約80秒|

Linuxははるかに速いです．

|区間|所要時間|
|------------------------------------------|----|
|Linuxを選んでからログイン画面が出るまで  |約20秒|
|パスワードを入力し終えてからデスクトップで操作ができるようになるまで|約12秒|

この端末の運用については以下の資料でより詳しく述べられています．

* 大山恵弘．「大学の教育研究用端末上でのベアメタルハイパバイザの運用」，[BitVisor Summit 6](https://www.bitvisor.org/summit6/)，2017年11月．[PDF](https://www.bitvisor.org/summit6/slides/bitvisor-summit-6-7-oyama.pdf)
* 大山恵弘，中井央．「ベアメタルハイパバイザを用いたネットワークブートシステムの性能評価」，[第21回学術情報処理研究集会](http://www.nipc.med.tuat.ac.jp/home/jacn/annai/jacn21st-info) 発表論文集，pp. 1-9，2017年9月．[PDF](http://www.nipc.med.tuat.ac.jp/home/jacn/annai/jacn21st-info/CACN2017-01.pdf)

今年のBitVisor Summitでも，発表ですこしふれました．

* 大山恵弘．「BitVisorによるOSの見かけ上10倍速実行」，[BitVisor Summit 7](https://bitvisor.connpass.com/event/100573/)，2018年11月．[PDF](https://www.bitvisor.org/summit7/slides/bitvisor-summit-7-4-oyama.pdf)

さて，vThrii上でUbuntuを立ち上げて，その上で /proc/cpuinfo を見てみます．

```
$ cat /proc/cpuinfo
...
model name      : Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
...
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc
art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq
dtes64 monitor ds_cpl smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe
popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt
ibrs ibpb stibp kaiser fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms rtm mpx rdseed adx
smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify
hwp_act_window hwp_epp
...
```

ゲストではvmxは無効ですね．@mmi さん[ご指摘](https://qiita.com/mmi/items/92faf2b4f47aa8fc8be7)のAVXについては，avxとavx2は有効ですが，avx512関係の機能は全部無効という結果になっています．ていうかCore i5-6600はSkylakeなので元々CPUがAVX512をサポートしていません．あと，端末ではRAID6も使ってません．

もしこのflagsを見て「これはヤバイ！」と気づいたことがあれば，こっそりと私に教えて下さい．そしたら，こっそりと，機能を無効にしたり有効にしたりします．

ちなみに，端末の画面の写真はHuaweiのタブレットで撮りました．