トップ 最新 追記

よこいまさる日記



Sun Nov 07 2010 [長年日記]

[Linux] HDDの温度をmuninで記録する。

HDDの温度を Munin で記録する。 確認したのは CentOS 5.4 と Ubuntu 10。

  • hddtemp のパッケージを yum や aptitude/apt-get で入れる。
  • munin-node のパッケージを入れる。
  • Ubuntu では munin-plugins-extra もインストール
sudo aptitude install munin-plugins-extra
  • /etc/munin/plugin-conf.d/munin-node に下記のような記述を
[hddtemp2]
user root
  • /etc/munin/plugins/hddtemp2 が登録されていなければ、下記のように登録
sudo ln -s /usr/share/munin/plugins/hddtemp2 /etc/munin/plugins/hddtemp2
  • munin-node のその他の設定も行い、/etc/init.d/munin-node restart でも実行。
  • telnet localhost 4949 で localhost の munin-node に接続し、下記のようなコマンドを動かして動作確認
fetch hddtemp2

何をどうすればHDDの温度が取得できるようになるのか、毎回探りながらやっていたので、メモ。 最近は hddtemp2 のプラグインを使うと良いみたいです。


Wed Nov 10 2010 [長年日記]

SSDに交換しようと思う。

128GB SSD が3万円を切っているみたいなので、この辺を買ってみようかな。

Amazon.co.jp さんが MP3 ダウンロードサービスを始めたそうな

AmazonさんがMP3ダウンロードでの楽曲販売を始めたそうな。 ってことで一曲ダウンロードしてみる。

坂本冬美 また君に恋してる


Thu Nov 11 2010 [長年日記]

RealTek 8168B を CentOS 5.5 で使う。

Hadoop クラスタ作った

仕事で今時なパソコンに CentOS 5.5 を使って Hadoop クラスタを作っていた。 使ったマザーボードはこれら。

  • MSI X58 Pro-E
  • ASUS M4A88TD-V EVO/USB3

適度な負荷をかけていると必ず kernel panic になったりして困っていた。 問題が起きる箇所は2カ所あった。

  • SATA のコントローラ。 これはBIOSでのSATAの設定を、IDE でなく AHCI に切り替えることで解決。
  • Ethernet コントローラ。 RealTek の 8168B というチップを使っており、これのドライバが CentOS 5.5 のカーネルに収録されていない。

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 から最近のカーネルドライバを入手して入れれば良いとのこと。 以下、手順を記録しておく。

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。

kmod-r8168 をインストール

今回の目的のドライバ r8168 をインストール

yum install kmod-r8168

リブート

あとはリブートすればOK。

もし失敗したら

もしドライバのインストールに失敗して、一時的に CentOS 標準の r8169 を使いたいとしたら、こんなコマンドを実行してね。

rmmod r8168
modprobe mii
insmod /lib/modules/$(uname -r)/kernel/drivers/net/r8169.ko

参考資料


Fri Nov 12 2010 [長年日記]

Munin で温度を記録しよう。

最近は寒くなってきましたね。 室内に設置しているサーバの温度も、窓を開けておけば下がりだして気楽なシーズン。

ここでサーバの温度を取得して記録する方法をまとめていこうと思います。

ファンの回転数 温度 電圧

lm_sensors のインストール

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 のインストール

hddtemp を用いると各HDDの温度が取得できます。

sudo yum install hddtemp
sudo apt-get install hddtemp

手元のマシンでは 3ware のRAIDカードを使っているため、hddtemp での温度取得が出来ませんでした。 残念。

munin-node の plugin を登録

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の情報を採るツールもあります。


Wed Nov 17 2010 [長年日記]

時間を見つけて書きたいこと。

とりあえず箇条書きに

  • ThinkPad X100e に SSD をつけた。
  • kvm on Ubuntu な Virtual Machine に Windows Vista Business を入れた。
  • JDL IBEX 出納帳8のインストーラが、CD-ROMの海賊版判定に特定セクタのリードエラー検出を使っていて、 Virtual Machine へのインストールが超大変だった。 ありがとう http://www.usb-over-network.com/

USB over Network を使って、KVMのWindows Vistaに「JDL IBEX出納帳8」をインストール

JDL IBEX 出納帳 on Windows Vista VM

先日 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ちょうだい!」とか言ってみようっと。


Mon Nov 22 2010 [長年日記]

[Network] OpenVPN が繋がらない場合に確認するところ

某社で導入したOpenVPNで接続できない!という問題があった。 どこかで起きた問題は他所でも起きると思うので、ここに書いておきます。

見るべきところはこのへん。

プライベートIPアドレスでの問題

接続先の IPv4 ネットワークと、手元にあるネットワークのアドレスが同じ場合に発生する問題。 プライベートIPアドレスを手元のPCとVPN接続先で利用している場合に発生する。

プライベートIPアドレスの 192.168.1.0/24 といったネットワークがVPNの先にあり、手元のネットワークが 192.168.1.0/24 といった場合。 このIPアドレスは、市販のホームゲートウェイなルータやポケットWifiなどが利用していることが多いので要注意。

で、ここで、他所のプライベートIPアドレスと被りにくいプライベートIPアドレスってなんでしょうかね、なんて話をしていたのだが、どのアドレスでも被るときには被るよね、ってことで。

TAP インターフェースが Off になっている場合

手元の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

Wed Nov 24 2010 [長年日記]

ThinkPad X100e でも休止状態でバッテリーが減っていた

いつも拝見している「薫のHack」より。

ThinkPad X200s 休止状態でもバッテリーが消耗する という記事があったので、うちの ThinkPad X100eでも確認してみた。 

ThinkPad X100e では RealTek のEthernetアダプタが装備されており、「このデバイスでコンピュータのスタンバイ状態を解除できる」にチェックが入っていた。 このチェックを外して様子見中。 バッテリー消費は落ち着いている模様。

Realtek PCIe GBE Controller Family のプロパティ


2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|