非公開メモ最新の10件2018-10-08RecentDeleted2018-09-24Debian/Tips2018-04-28Linux全般/Ansible2018-04-07MenuBar2018-03-24local/top2018-03-15Debian2017-07-23Windows/gadget2017-06-21Windows/Tips2016-12-23仮想化/ESXi2015-12-20Debian/DNSSECOpenVZとは、フリーの仮想マシンのひとつで、同一のカーネルを使用する方式だ(Xenとは違う実装)。商用版は、Virtuozzoという名前で、いろいろ便利な機能が使用できるようだが、基本的な機能は変わらないらしい。ここでは、用語をOpenVZに習い、仮想マシンのことをVE、ホストマシンのことをVE0と記述する。自分で実際に運用した限りでは、以下のような問題があった。VE0、VEともにCPU使用率が低いにもかかわらず、たまに数秒程度処理が引っかかる。処理が引っかかるせいか、システム時刻が不定期に狂う。サーバマシンとしては致命的なので、ほかの仕組み(UML?、VServer?)を検討中。interrupt.」のエラーが出ているときに処理が引っかかるようだ。NICが腐っているようなので、高いけど3comのものを買うことにする。†ここでは、192.168.0.100を使用するVEだけ、192.168.0.200のゲートウェイを通ってインターネットに出て行く場合の方法を記述する。振り分け用のルールテーブルを作成する。テーブル名ではなく番号を直接使用する場合には必要ない。/etc/iproute2/rt_tables作成したテーブルを使用する条件(ルール)を指定する。ve条件にあったパケットの、ローカルアドレスとデフォルトゲートウェイのルート情報を指定する。ve念のため、ルーティングのキャッシュをクリアする。以下のように記述するとできる(最後の3行)。†まずは、venet用のIPアドレスを削除する。その後、veth用にMACアドレスを割り当てる。--saveVEを起動し、VE上のネットワーク設定を追加する。192.168.0.254ネットワークの設定を反映させるためVEを再起動すると、先ほど指定したネットワークデバイス(veth1001)がVE0に追加されるので、それを有効にする。0VE0から出て行く物理NICと、VEとやり取りする仮想NICのforwardingとproxy_arpを有効にする。#この環境では、仮想NICのproxy_arp以外はすでに有効になっていた。net.ipv4.conf.eth0.proxy_arp=1VE用の設定をルーティングテーブルに追加する。veth1001VEから、VE0やほかのマシンにpingが届けば設定完了だ。www.google.ne.jp当初は、この方法でVEべつにデフォルトゲートウェイを変えれると思っていたが、この方法では無理だった。そのため、iprouteを使用たVE別のデフォルトゲートウェイの設定?をすることにした。オプションを使用する。配下を参考にするとよい。以下のようになっている。/dev/md0を見せるには、以下のように行う。--saveこれだけではVEからデバイスが見えなかったので、VEにデバイスを作成する。†VE0をpppoeでルータにしていると、VE0からVEにつないだときに、VEからはpppoeで取得したグローバルアドレスからアクセスしているように見えることがある。これでは都合が悪いので、VEにつなぐネットワークデバイスを明記する。これにより、そのネットワークデバイスのIPアドレスから接続されているように見える。†VEで使用するメモリは設定ファイルで指定するが、メモリ使用の基準となるのは実際に使用しているサイズではなく、確保したサイズとなるようだ*1。Linuxでは、メモリ使用効率の面からデフォルトではメモリ確保だけでは実メモリを消費せず、アクセスをしたときにはじめてメモリを割り当てる仕組みになっている。