狠狠撸

狠狠撸Share a Scribd company logo
あるいは最近のパススルー事情
zgock(安藤)@東海道らぐ2015年12月オフin名古屋
レジュメ
? zgock?だからお前誰よ?
? 2013年版VDIサーバその後
? KVM乗り換えを画策して絶望した話
? 使い分けようXenとKVM
? openSUSE xenカーネルでもzfs
? 実用レベルになってきたbtrfs
? 最近のXenでの環境設定
? デモとか质疑応答とか
zgock?だからお前誰よ?
? 安藤と申します、愛知県の隅っこで流し
の画像処理屋(自称)やってます
? ちと2年ほど病気リタイヤでこの界隈か
ら姿消してました
? 前回のスライドが狠狠撸Shareで2万
ビュー超えてて吹いたw
? 仮想化はただの趣味です
2013年版VDIサーバその後
? 特に大きなトラブルなく2年間安定稼動
? VGAだけ強化(RADEON6870(中古))
? XPゲストを破棄してWin7に統一
? SSDを調達して載せてみたり
? そうこうしててzgockが病気でダウン
? openSUSE12.3のサポートが切れた
ありがとうopenSUSE12.3
? Xenとzfsの組み合わせで奇跡的なバラ
ンスでド安定していた貴重なバージョン
? openSUSE13.1以降、xenカーネル下で
zfsモジュールのビルドが通らないため、
zfsパッケージ(Build Serviceの野良repo
含)がサポート外に
? 13.x系はそのためスルーしてた
? とうとうサポート切れ???今後どうし
よう?
碍痴惭に移行するかなあ???
KVM移行実験
? サブマシン(元開発マシン(建前)ゲーム端
末(実態))をKVM検証環境に
? Core-i7 3770
? ASUS P8Z77-M
? RADEON HD7750/5550の2枚刺し
? KVMはiGPUパススルーできないけど、
まあRADEON2枚パススルーできれば
いいや
玉砕しました!
KVMの弱点、GPUパススルー
? 最近のカーネルではVFIOの実装により、
以前よりはずっとKVMでのパススルー
は楽になった
? dGPU1枚をパススルーするとかなら
とっても簡単?安定
? LGA2011マザーとかのPCIレーンに余裕
があるマザーなら複数枚も安定
? iGPU+dGPU複数+LGA115xでは地獄
KVMの構造のおさらい
? ペリフェラル制御はドライバ依存
Linux Kernel
ペリフェラル
ドライバ ドライバ ドライバ
QEMU
仮想化支援機構(KVM)
ゲスト
ドライバ
ドライバ
ゲスト
Xenの構造のおさらい
? ペリフェラル制御はハイパーバイザが仕切る
Linux Kernel(DOM0)
ペリフェラル
ドライバ ドライバ ドライバ
QEMU-DM
(Xen内蔵)
Xen HyperVisor
ドライバドライバ
行儀の悪いドライバ(i915とか)が
いると???
? ドライバ実装次第なのでこのへん運任せ
Linux Kernel
ペリフェラル
i915 ドライバ ドライバ
QEMU
仮想化支援機構(KVM)
ゲスト
ドライバ
ドライバ
I/O空間あけてちょ
おう!空けるぜ!
(実は開放してない)
PCIレーンが束ねられていると???
? どう束ねられているかはマザー依存
Linux Kernel
ペリフェラル
ドライバ ドライバ ドライバ
QEMU
仮想化支援機構(KVM)
ゲスト
ドライバ
ドライバ
Aちょうだい
Bも一緒でないと
渡せへんで
ペリフェ
ラルA
ペリフェ
ラルB
PCIレーン PCIレーン
ペリフェラル
C
このへん「強引に」どうにかする
カーネルパッチも存在しますが、
「どうにかなる」かどうかは完全に
マザー依存
(dGPUの枚数が増えるほど絶望
的に)
ゲスト
Xenならどうにか???
? HyperVisorがペリフェラル調停を「わりと」よし
なにやってくれる
Linux Kernel(DOM0)
ペリフェラル
i915 ドライバ ドライバ
QEMU-DM
(Xen内蔵)
Xen HyperVisor
ドライバドライバ
I/O空間あけてちょ
おう!空けるぜ!
(実は開放してない)
わしの方で
空けておいたで
KVMをdisってるわけじゃないですお?
? ハイパーバイザとデバイスモデル(QEMU)
の両方の面倒を見るXenよりもQEMUの面
倒を見るだけで良いKVMは構造が単純
? 単純な分開発も早い
? 赤帽さんが本気で頑張って投資もしてる
? PCIパススルーという「一点だけ」におい
てはXenとの間に越えられない壁がある
? 結局デスクトップ環境なんかと同じで適材
適所で使い分けしましょうってことで
うちの環境ではXen使うしかない
なあ???
zfsどうしよう?
? Xenカーネルでビルドエラーになる原因を真剣に追う
? ヘッダに一行、お行儀の悪い書き方のマクロ発見
? zfsチームに問い合わせ
? メンテナ「あ~それな、行儀悪いのわかってんやけど、
Solarisとのソース互換維持でやむなく使ってるねん」
? z「(小考)…ん~、この書き方でどうよ?(パッチ送
る)」
? メンテナ「あ、それならええな。Mergeしたるわ。た
だな、次からは修正前の行コメントア
ウトで残すのやめてな?」
zfs問題解決
? zfs最新版をgit cloneしてxenカーネル下で
ビルド
? 無事ビルド完了
? z「やった~xenカーネルでzfs使えるよう
になったよ!」
? ftakeさん(openSUSE-ja方面)
「tumbleweedではxenカーネル廃止(xen
カーネル含め特殊カーネルを一本化)の方
向で進めてますよ。じき廃止になるんじゃ
ないかなあ?」
わりと無駄な努力?
? ま、まあ現行安定版Leap42.1ではxenカー
ネル健在だし
? RHとかでもconfig次第でエラーになるって
問題出てたわけだし
? 全くの无駄じゃないよね???うん
Btrfs移行も検討しました
? 最近のカーネル(3.10以降ぐらい)ではbtrfsもプ
ロダクションレベルになってきている
? SLESやUnRAIDとかの商用Linuxでもbtrfsを普
通に使い始めている
? まだ実装間もないRAID5/6はさすがに危ない
が、RAID0/1/10で使う分には問題はほぼ起き
ない
? zfsが苦手とする部分をカバーしてたりする
? ボリュームの縮退
? SSD対応(zfs on Linuxはtrimが使えない)
○ (FreeBSDはtrim対応済)
? Snapperマジ便利
でもやっぱ6TB+の現行zfs環境を
btrfs化するのめんどいわw
? ディスクアレイとしての信頼性はやっぱ
りまだzfsの方が僅差で上回る
? 任意のサイズのblockdeviceが切り出せ
るzvolマジ便利
? (それなりの手順が要るけど)他OSに
アレイがポーティングできるのは安心
ただSSD環境はbtrfs使おうかな?
? Crucialの480GB SSD(嫁に内緒で)買うたっ
た(1年前)
? パーティションを切ってzfsの
L2ARC+ZIL+1drive zfs領域として使用
? SSDならdedupとか使っても実用レベルじゃ
ね?
? 320GBのパーティションを重複排除ありのVM
領域として使用
? 重複排除ありでも実用レベルのレスポンス
?1年運用して総書込み量が
60TBに
zfsはあくまでも「エンタープライズ
志向のガチFS」なので個人ユーザ
の財布とか気にした設計じゃあり
ません
SSDはbtrfsで運用
? 480GB SSDはCドライブが逼迫してきた仕
事PCに移動
? 仕事PCで使ってた128GB*2をbtrfsでraid-0
運用(パフォーマンス上げよりも総書込み
量分散が狙い)
? 耐障害性はzfsアレイに定期的にバックアッ
プすることで担保
? 特にレスポンスが欲しいVMだけSSD化
? Raw imageで管理しつつreflinkで擬似
snapshot
reflinkによる擬似snapshot
? cp –reflink hoge.img fuga.img
? あくまで「参照情報のコピー」になるため
100GBのイメージをコピーしても管理情
報の数KBだけ消費、時間も一瞬
? fuga.imgの一部を更新すると、「更新された
データブロック」分だけディスクを消費
? fuga.imgを元に戻したければもう一度cpす
るだけ
? 断片化しまくるがSSDなら気にならない
1TB HD*6
1TB HD*6
現在のディスク構成
1TB HD*6
1TB HD*6
128GB
SSD*2
128GB
SSD*2
USB3
Stick 64GB
1TB HD*6
btrfszfs
fat32
(/boot)
(efi)
Welcome openSUSE Leap 42.1
(& Xen 4.5)
Xen4.1(旧環境)→4.5(新環境)で
色々変わった
? QEMU Upstream
? virtioサポート
? Spiceサポート
? Memory周りの細々したとこ
? パフォーマンスの改善
? パススルーの設定方法変更
? 実はXen4.1→4.2の間でドラスティック
な変化が
QEMU Upstream
? Xenの完全仮想化を実現するための足回り(Device
Model)は現在2種類
? qemu-xen-dm (upstream)
○ Xenのメジャーリリース時点での最新版QEMU準拠
(Xen4.5の場合QEMU2.3)
○ virtioやらSpiceやら多彩な機能
○ パススルーに若干弱い
? Intel iGPUがパススルーできない
○ KVMと遜色ないパフォーマンス
○ とゆーかKVM=QEMUが出来ることはほぼ出来る
? qemu-xen-traditional(traditional)
○ Xen 4.1時点で機能フリーズしたQEMU
○ 各種機能追加は4.1時点でフリーズ
○ パススルーに強い
? Intel iGPUがパススルーできる
QEMU 2.5←New
? 2015/12リリースの最新版
? Xenと併用した場合intel iGPUのパススルー
サポート←upstreamでもiGPUパススルー
? Xenが統合するのはXen4.7になってから
○ おそらく2016年後半
? 自前でビルドしてXenと併用は可能
? ごめんなさい、まだ未テストです
○ たぶんXen4.6に上げないといけない
○ openSUSE Build Serviceに4.6があるけどまだ
ちょいと未成熟
パススルー関係の設定場所が変
わりました
? /etc/modprobe.conf.d/以下を弄る
? 50-blacklist.confでカーネル側ドライバを排除
○ radeon i915 snd_hda_intel等々
? 99-local.confに以下を追加
○ options pciback permissive
? マザーによっては不要
○ options pciback hide=(0000:01:00.0)(0000:01:00.1)
? パススルーしたいデバイスを列挙
? openSUSE xen-kernel以外では”xen-pciback”に
なります
○ SLESとの後方互換性
というわけで現在のゲスト構成
? VM1(2core+Intel HD4000+3GB Mem)
? qemu-traditional
○ (traditionalの制限で3Gが限界)
? Windows7 64bit エンコード端末
? QSV使うため
? VM2(2core+RADEON HD7750+4GB Mem)
? qemu-upstream
? Windows7 64bit 嫁環境
? Windows7 64bit 子供環境
? openSUSE Leap 42.1
○ (LinuxでGPU使いたい時用)
? VM3(3core+RADEON HD 6870+8GB)
? qemu-upstream
? Windows7 64bit 開発環境
? Windows7 64bit CG作成環境
? Windows7 64bit パパのゲーム環境
? openSUSE Leap 42.1
○ VM2と同一ディスク(空いてる側のVMで起動)
ポットのための一杯
zfsのための1core
実機デモ
? ディスク8台積んだサーバー持ってくる
と思った?ごめん無理!
? Intel HDをパススルー設定したNUC持っ
てきました
? HandbrakeによるQSVエンコ実演
? なんかいろいろベンチとか
デモ機構成
? Intel NUC Kit DC53427HYE
? Ivy Bridge core-i5 3247U
? Intel QS77 Chipset
? Intel HD Graphics HD4000
? 16GB DDR3L
? 256GB SSD btrfs formatted
? openSUSE Leap 42.1+Xen4.5
? Guest:Windows7 Professional 64bit
质疑応答とか
ありがとうございました!

More Related Content

しつこく齿别苍と锄蹿蝉で作る家庭内惫诲颈サーバ2015年版