2018年05月19日(土) - 22:57 | カテゴリ:
Linux
ns-lab BBのサーバ群は基本的に仮想サーバで構築しており、
ハイパーバイザーはKVM・Hyper-Vが主に、VPSを借りたりもしている。
その時微妙に問題になるのが深夜のスクリプト処理でCPUが奪い合いになる事と、
/dev/randomのエントロピー不足によるReadLockであったりする。
今までは表面化していなかったのだが、kernel 4.16辺りで導入された、
“crng_init” の初期化仕様変更に伴い、起動直後から/dev/randomを直参照する必要が出てきた。
ただ、起動直後は乱数の元となるエントロピーが溜まっていない為、
ReadLockが発生してしまいOSの起動が止まってしまった。
この問題に行き着く迄に1週間を費やし、kernelリビルドを10回程実行 ヘ(゚∀゚ヘ)
LKML.ORGを見るとこの問題の対応方針がまだ決まっていない見たいだが、
CVE-2018-1108の脆弱性対応も含まれているらしく、仕様がひっくり返る事は無さそう。
「だったら起動直後からエントロピーを蓄積出来る方法が無い物か」と、
/dev/randomエントロピー蓄積に使えそうな物を探してみた。
Google翻訳片手に頑張った自力解釈なので、間違いがあってもごめんなさい。
ちなみに、下記方法を使っても今回の問題は解決出来ないのであしからず (´・ω:;.:…
理由は最近わかったのだが、問題となっている “crng_init” はkernel読込み時に参照するコードであるが、
下記の方法はkernelが起動した後のOS階層で実行される為、そもそもタイミングが違うらしい。
- TPM (Trusted Platform Module)
rngdから「-o /dev/random -r /dev/my_hw_random_device」の様に定義して利用する
ノートPCに搭載されているチップで、TPM内で公開鍵を作る事も出来る
20KB/s程度のエントロピーを作れるらしく、TPMを搭載しているならば有用な手段
- HAVEGE (Hardware Volatile Entropy Gathering and Expansion)
daemonが/dev/randomのIOに直接エントロピーを提供するらしい
多くのディストリビューションでパッケージが提供されているので手軽に実装出来る
- bcm2708-rng / bcm2835-rng
Raspberry Piで使える手法。ラズパイのバージョンによりチップも変わる
kernelで [bcm2708-rng (bcm2835-rng)] モジュールを呼び出した後、
rngdを起動する事で/dev/randomのエントロピー収集元として、
/dev/hwrngを参照するようになる
- NeuG (True Random Number Generator)
A/D変換器のノイズをエントロピーとして利用する
A/D変換を使う為ハードウェアが必須となり、FST-01Gが存在する
- VirtIO RNG
仮想環境はハードウェアに直結する実装が少ない為、エントロピーが不足しやすい
「だったら、ホストOSのエントロピーをパススルーする」のがVirtIO RNGの手法
libvirtで利用するならコチラのサイトでXMLの設定方法を紹介している
………
乱数エントロピーは色々な種類があり、超高価な物なら核反応の分裂数を使ったりもするらしい。
調べればもっと出てくると思うが、個人レベルで入手出来る物だとNeuG辺りになるのかもしれない。
後はRaspberry Piに搭載されているBCM2708も良い乱数元になりそう。
どれを選ぶにしても本来の目的であった “crng_init” 制御には使えないのだが、
/dev/randomのReadLockはハマると怖いので動作仕様を把握しておこうと思う。
« 続きを隠す
2018年05月12日(土) - 22:49 | カテゴリ:
ロードバイク
今回はイベントにより自転車で自動車専用道路を走ってますが、
本来は自転車で自動車専用道路を走行したら道交法違反になるので注意
………
6月2日に開通する外環道(三郷南IC~高谷JCT)に先立ち、
5月12日にプレイベントとして高速道路を自転車で走るイベントがあった。
高速道路を自転車で走ったら気持ち良いだろうなと常々思っていた所にイベント情報が来たのと、
自走で行ける範囲内だった事もあり、友人を誘った上でイベントに行ってきた。

手ぬぐいが安っぽいが仕方ないか (´・ω・`)
6月2日に開通するのは三郷南IC~高谷JCT間だが、
今回のイベントでは千葉県区画となる、松戸IC~高谷JCTの走行だった。
殆どが地下道路となるので細かい所までは判らないが、
イベントで走行したのは下記の赤線みたいな感じの筈。

最初は、GoPRO辺りを買うか迷ったのだが買う程の事でも無いし、
開通後に車で普通に走れる道路なので買わなかった (´・ω・`)
走行した感じだと、松戸から市川辺りまでは2%程の下り勾配だった。
なので、自転車としては楽に走る事ができスピードが上がり気味になってしまった。
ただ、高谷JCTは地上なので一気に上り坂になった。
この辺りは坂も5%程あったので車で走行する時はスピード低下に気をつけた方がよさそう。
他に気になったのは京葉JCT辺りが凄く混みそうに感じた。
というのも、外環から京葉道路に抜ける箇所が結構狭く、
その割には東京・千葉の両方面に行くのを1車線で引き出すような構造になっていた。
なので、外環から京葉道路に抜ける所は渋滞しそうな為、開通後は要注意JCTかもしれない。
………

普通は見れない「DO NOT ENTER」も設置済。
昨今、高速道路に自転車で侵入する事件も起きているので結構重要。

距離は20km弱しかないので実走行は1時間以下であったが、普段走れない所を走れて満足。
余程の事が無いとこんな事は無いし、開通後は車で通ってみたい所存。
« 続きを隠す
2018年05月04日(金) - 18:50 | カテゴリ:
ゲーム
先日発売となった「うたわれるもの」をプレイすべく、PS4本体も同時購入していた筆者。
知っている人は知っていると思うが、Proじゃない方のPS4は光オプティカル端子が無いので、
音声もHDMI経由で出力するか、コントローラーからイヤホンへ出力しなくてはならない。
筆者の環境は音声を光オプティカルの切り替え器に終端した後、
トランスミッターに流したり、DTM用のミキサーに流し込んだり、
ヘッドホンアンプにも繋いでいる為、全部を光オプティカル端子にする必要があった。
という事でamazonで安かったから購入した、Hikary HDMI切替器なのだが、
初期不良というアタリを引いたのかHDMI画像はノイズで見られず、
音声は全く出力されない状態になった (´・ω・`)
色々とPS4側の設定を弄ったりポートを切り替えたりもしたのだが、
最初30分はポート切り替えれば使えた物の、その後は全く使えなくなってしまった。
………
今度はちゃんとした物を使うべく、サンワサプライ VGA-CVHD5を買ってみた。

結論からだが、今まで試行錯誤したのが嘘の様に普通に使う事が出来た。
デジタル出力・アナログ出力はもちろんの事、HDMIのノイズも出なかった。
分離機能のみのデバイスとしてはちょっとお高いかもしれないが、
安定性は問題無いので薄型PS4で音声分離を行いたい人にはオススメ出来る一品
同じ事で迷っている人は是非使ってみて欲しい。