HDDの温度を Munin で記録する。 確認したのは CentOS 5.4 と Ubuntu 10。
sudo aptitude install munin-plugins-extra
[hddtemp2] user root
sudo ln -s /usr/share/munin/plugins/hddtemp2 /etc/munin/plugins/hddtemp2
fetch hddtemp2
何をどうすればHDDの温度が取得できるようになるのか、毎回探りながらやっていたので、メモ。 最近は hddtemp2 のプラグインを使うと良いみたいです。
128GB SSD が3万円を切っているみたいなので、この辺を買ってみようかな。
AmazonさんがMP3ダウンロードでの楽曲販売を始めたそうな。 ってことで一曲ダウンロードしてみる。
仕事で今時なパソコンに CentOS 5.5 を使って Hadoop クラスタを作っていた。 使ったマザーボードはこれら。
適度な負荷をかけていると必ず kernel panic になったりして困っていた。 問題が起きる箇所は2カ所あった。
SATAの問題はBIOSの設定を切り替えて、再インストールすることで解消。
残る Ethernet のドライバだが、r8168 を使っているのに CentOS のカーネルでは、r8169 のドライバを使い回してしまうところに問題があった。 ということで r8168 のドライバを入手して入れれば良さそう。
利用していたマシンの /sbin/lspci -v の結果は、下記のようになっています。
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Subsystem: Micro-Star International Co., Ltd. Unknown device 7522
Flags: bus master, fast devsel, latency 0, IRQ 98
I/O ports at e800 [size=256]
Memory at fbdff000 (64-bit, non-prefetchable) [size=4K]
Memory at f8ff0000 (64-bit, prefetchable) [size=64K]
Expansion ROM at fbdc0000 [disabled] [size=128K]
Capabilities: [40] Power Management version 3
Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable+
Capabilities: [70] Express Endpoint IRQ 1
Capabilities: [b0] MSI-X: Enable- Mask- TabSize=2
Capabilities: [d0] Vital Product Data
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
Subsystem: ASUSTeK Computer Inc. Unknown device 8432
Flags: bus master, fast devsel, latency 0, IRQ 58
I/O ports at e800 [size=256]
Memory at fdfff000 (64-bit, prefetchable) [size=4K]
Memory at fdff8000 (64-bit, prefetchable) [size=16K]
Expansion ROM at febe0000 [disabled] [size=128K]
Capabilities: [40] Power Management version 3
Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable+
Capabilities: [70] Express Endpoint IRQ 1
Capabilities: [b0] MSI-X: Enable- Mask- TabSize=4
Capabilities: [d0] Vital Product Data
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
調べ回っていたところ、ELRepo から最近のカーネルドライバを入手して入れれば良いとのこと。 以下、手順を記録しておく。
yum から ELRepo のパッケージをインストールできるようにする。
rpm -Uvh http://elrepo.org/elrepo-release-5-1.el5.elrepo.noarch.rpm
インストール後、elrepo を enable にするために、/etc/yum.repos.d/elrepo.repo を編集。
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el5
baseurl=http://elrepo.org/linux/elrepo/el5/$basearch/
http://elrepo.reloumirrors.net/elrepo/el5/$basearch/
http://mirror.solvention.de/elrepo.org/linux/elrepo/el5/$basearch/
http://ftp.ines.lug.ro/elrepo/elrepo/el5/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
「enabled=1」を設定ね。 または yum コマンドを実行するときに
yum --enablerepo=elrepo
とか行ってもOK。
今回の目的のドライバ r8168 をインストール
yum install kmod-r8168
あとはリブートすればOK。
もしドライバのインストールに失敗して、一時的に CentOS 標準の r8169 を使いたいとしたら、こんなコマンドを実行してね。
rmmod r8168 modprobe mii insmod /lib/modules/$(uname -r)/kernel/drivers/net/r8169.ko
最近は寒くなってきましたね。 室内に設置しているサーバの温度も、窓を開けておけば下がりだして気楽なシーズン。
ここでサーバの温度を取得して記録する方法をまとめていこうと思います。
lm_sensors はマザーボードやCPUに搭載された各種温度センサーやファン回転数、電圧の表示などを行うものです。 インストールは lm_sensors のパッケージをインストールするだけです。
CentOS なら yum で
sudo yum install lm_sensors
Ubuntu なら aptitude で
sudo aptitude install lm-sensors
インストールが終わったら、センサーデバイスの検出を行います。
yes | sudo /usr/sbin/sensors-detect
センサーの検出ができたら、サービスとして登録します。
CentOS なら /sbin/ckconfig で登録
sudo /sbin/chkconfig lm_sensors on
Ubuntu ならば update-rc.d で登録
sudo /usr/sbin/update-rc.d lm-sensors enable 2345
/usr/bin/sensors を使うとセンサーの検出する値が表示できます。
$ sensors it8718-isa-0290 Adapter: ISA adapter in0: +1.09 V (min = +0.77 V, max = +1.54 V) in1: +1.81 V (min = +1.62 V, max = +1.98 V) in2: +3.26 V (min = +2.96 V, max = +3.63 V) in3: +2.99 V (min = +2.54 V, max = +3.46 V) in4: +3.04 V (min = +2.70 V, max = +3.30 V) in5: +0.03 V (min = +0.02 V, max = +4.06 V) in6: +1.09 V (min = +0.02 V, max = +4.06 V) in7: +2.54 V (min = +2.24 V, max = +2.75 V) in8: +3.22 V fan1: 1917 RPM (min = 1500 RPM) fan2: 1634 RPM (min = 1149 RPM) fan3: 1541 RPM (min = 1149 RPM) fan4: 1544 RPM (min = 1149 RPM) fan5: 0 RPM (min = 10 RPM) ALARM temp1: +36.0°C (low = +5.0°C, high = +62.0°C) sensor = thermistor temp2: +35.0°C (low = +5.0°C, high = +62.0°C) sensor = thermistor temp3: +52.0°C (low = +5.0°C, high = +90.0°C) sensor = thermal diode cpu0_vid: +2.050 V coretemp-isa-0000 Adapter: ISA adapter Core 0: +34.0°C (high = +78.0°C, crit = +100.0°C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +37.0°C (high = +78.0°C, crit = +100.0°C)
取得できる対象はマシンによって異なります。 今回試したマシンでは、CPUコア温度、ファン速度、電圧のすべてが取得できました。
hddtemp を用いると各HDDの温度が取得できます。
sudo yum install hddtemp
sudo apt-get install hddtemp
手元のマシンでは 3ware のRAIDカードを使っているため、hddtemp での温度取得が出来ませんでした。 残念。
munin-node の設定は省略します。
munin-node plugin の sensors_ を使うと、lm_sensors を介した、温度・ファン・電圧の値が取得され記録できます。 登録は /etc/munin/plugins にシンボリックリンクを作るだけです。 先ほどの sensors コマンドで取得できる対象のシンボリックリンクだけを作ると良いでしょう。
# 温度を取得する場合 sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp # ファン速度を取得する場合 sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan # 電圧を取得する場合 sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt
# HDDの温度を取得する場合 sudo ln -s /usr/share/munin/plugins/hddtemp2 /etc/munin/plugins/hddtemp2
以上が完了したら munin-node のリスタートを行います。
/etc/init.d/munin-node restart
リスタート後に取得できるか、telnet で munin-node に接続し、確認してください。
$ telnet localhost munin fetch sensors_temp fetch sensors_volt fetch sensors_fan fetch hddtemp2
HDDの温度は hddtemp で採る方法を今回使いましたが、SMARTの情報を採るツールもあります。
とりあえず箇条書きに
先日 Ubuntuサーバ上のqemu/kvm にインストールした Windows Vista に、会計ソフトのJDL IBEX出納帳8をインストールした。
JDL IBEX出納帳のインストールCDには、特定の部分を読み込んだときに読み取りエラーが発生するように、意図的に作られている。 そしてインストールプログラムが、このエラーが発生するかどうかを調べ、エラーが検出できた場合にはインストールを行い、エラー検出ができなかった場合には複製されたCDとして取り扱うようになっていた。 そのため、JDL IBEXのヘルプページなどを見ていると、CD-ROMをネットワーク経由で利用することができない、といったことが記述されている。
Virtual Machine でCD-ROMを利用する場合、サーバ機についているCD-ROMのブロックデバイスファイルから、再度IDEのコマンドに変換し直してゲスト側にCD-ROMドライブとして提供する機能がある。 これを利用すると、ブロックデバイスファイルからIDEの命令に変換する部分で読み取りエラーがゲスト側に通知されていなかった模様。
VMWare や Virtual Box などの仮想化ソフトウェアを利用すると、マシンに接続されたUSBデバイスをゲスト側の仮想USBコントローラに繋がったように振る舞う機能がある。 QEmu, KVM でもその機能があるのだが、利用していたDVDドライブが悪かったのか、ゲスト側で確認すると「USB大容量記憶ドライブ」(いわゆるUSBメモリ)として識別されてしまっていた。
PCに接続されたUSB機器を、他のマシンからのUSBへの命令で利用できないモノかと調べていたところ、 USB over Network なる言葉を発見。 実装の一つに usbip ( http://usbip.sourceforge.net/ ) というモノがあった。 ただこれはLinuxではキチンと動くが、WindowsをUSBホストにするのが難しかったので断念。
さらに調べていると USB over Network ( http://www.usb-over-network.com/ ) というものを発見。 たぶんIPネットワークを介して、Windowsの動いているPCに接続されているUSB機器を、別のWindowsが動いているPCから利用する、というものだった。 ノートパソコンに USB over Network のサーバを導入し、インストールを行う Windows Vista のVM側をクライアントにして実行。 キチンとUSB接続のDVDドライブが利用できました。 最初の目標であった、CDの読み込みエラーもキチンとVM側に通知されているすばらしさ。
この USB over Ethernetだが、うまく使えばお家にUSB接続の地上デジタル放送のワンセグチューナーを置いておいて、VPN経由で他の場所からテレビ閲覧とかできそうだなぁ。 となると、バンコク在住のN兄にロケーションフリーテレビ機能を提供できそうな。 実際にソフトウェアを購入すると120USDぐらいするらしいので、年末に帰国されたときに「120USDちょうだい!」とか言ってみようっと。
某社で導入したOpenVPNで接続できない!という問題があった。 どこかで起きた問題は他所でも起きると思うので、ここに書いておきます。
見るべきところはこのへん。
接続先の IPv4 ネットワークと、手元にあるネットワークのアドレスが同じ場合に発生する問題。 プライベートIPアドレスを手元のPCとVPN接続先で利用している場合に発生する。
プライベートIPアドレスの 192.168.1.0/24 といったネットワークがVPNの先にあり、手元のネットワークが 192.168.1.0/24 といった場合。 このIPアドレスは、市販のホームゲートウェイなルータやポケットWifiなどが利用していることが多いので要注意。
で、ここで、他所のプライベートIPアドレスと被りにくいプライベートIPアドレスってなんでしょうかね、なんて話をしていたのだが、どのアドレスでも被るときには被るよね、ってことで。
手元のTAPデバイス (Ethertap) が Off になっていると繋がらない。
Windows 7 ならば、スタートメニューのネットワークのプロパティ、「アダプターの設定の変更」で確認してください。 ここの TAPドライバが「無効」になっていると繋がりません。
OpenVPN の接続が確立されていないときに「ケーブルが繋がっていない」という表示になっているのが正しい状態です。
接続時のログは Program files の中に書かれているので、それをご確認ください。
【64bit版】 C:\Program Files (x86)\OpenVPN Technologies\OpenVPN Client\etc\log 【32bit版】 C:\Program Files\OpenVPN Technologies\OpenVPN Client\etc\log
いつも拝見している「薫のHack」より。
ThinkPad X200s 休止状態でもバッテリーが消耗する という記事があったので、うちの ThinkPad X100eでも確認してみた。
ThinkPad X100e では RealTek のEthernetアダプタが装備されており、「このデバイスでコンピュータのスタンバイ状態を解除できる」にチェックが入っていた。 このチェックを外して様子見中。 バッテリー消費は落ち着いている模様。