2010/03/12

HDDベンチマーク No.02

お次はWindowsでのベンチマークです。

実験環境
CPU:Intel Core 2 Quad Q9650
メモリ:DDR-800 1GB×2枚+2GB×2枚
マザーボード:Gigabyte EP45-UD3P
OS:Windows XP Pro SP3
eSATAでHDDと接続し、クレードルとしてLogitecのLHR-DS01SAU2を使用。
HDDのフォーマットは、プライマリパーティション、単一パーティション、NFS、規定値、クイックフォーマット。

@WD20EADS-00R6B0
・HD Tune

・CrystalDiskMark 1000MB

@WD20EARS-00S8B1ジャンパーピン有
・HD Tune

・CrystalDiskMark 1000MB


@WD20EARS-00S8B1ジャンパーピン無
・HD Tune

・CrystalDiskMark 1000MB

これから見ると、単一パーティション運営であればXPでも十分に使えると言う事ですね。
キャッシュが2倍になっている分、むしろ早いかもしれません。
設定を間違えると、ランダムアクセスが残念な事になりますけど。

QNAPのNASでのベンチマークは次回に持ち越しという事で。

2010/03/11

HDDベンチマーク No.01

QNAPに入れるHDDを決めるため、とりあえず素のままのベンチマークを取ってみました。
比較対象は今話題のWD20EADSとWD20EARSです。
今回はLinuxのddコマンドを使用しての簡易ベンチマークです。

WD20EARSはWA20EADSに比べて、何が違うのかというと
・キャッシュが2倍の64MBになっている。
・WD独自の「Advanced Format」でフォーマットされており、Windowsのカーネル6.X(Windows Vista or 7)に適している。=> 4KiBセクタを使用しているので、前述以外のOSだとHDDの開始位置がずれるのでパフォーマンスが落ちるらしい。
詳しいスペックはWD本家のサイトを参照して下さい。

比較した値を纏めたのが以下の表になります。

別ページで開く

実験環境を書き出すと
使用したOSは「Ubuntu 8.04」のliveCD
使用したコマンドは、「dd if=/dev/zero of=dev/sdX」
bsオプションは4kの時が安定していたので、bs=4kの場合で比較します。
マザーボードは、Gigabyteの「EP45-UD3P」
HDDの接続方式はeSATAで、クレードルはLogitecの「LHR-DS01SAU2」
です。

・WD20EADS
初速 = 96.8MB/s
終速 = 69.8MB/s (2TB書き込み終了時)
比率 = 72.1%
・WD20EARS(ジャンパーピン無し)
初速 = 105MB/s
終速 = 71.1MB/s (2TB書き込み終了時)
比率 = 67.7%
・WD20EARS(ジャンパーピン有り)
初速 = 67.3MB/s
終速 = 43.2MB/s (2TB書き込み終了時)
比率 = 64.2%

1パーティションで使用する場合は、ジャンパーピンを7-8に設定すればよかったはずなのに、設定しない方がスピード出てる。。。
OS変われば、色々変わりますんで、参考程度に考えて下さい。
# この結果から、UbuntuはWindows 7等と同じパーティション管理方法なんでしょうね。
# Sambaでもシンボリックリンク辿れたし。
因に、ddコマンドだけだとシーケンシャル書き込みのみの測定になると思います。
シーケンシャル読み込みとランダム書き込み、ランダム読み込みに関してはWindowsにて行いたいと思います。
# シーケンシャル書き込みなんて、倉庫用途でしか意味ないですね。
# このHDDをシステムドライブに使用する馬鹿がいたら見てみたいものですが。
# 容量は落ちるが2/3の値段で、7200rpmの「WD10EALS」が買えるのだから。
# そもそも、システム用とデータ用のHDDを一緒にするのが考えられない。ノートPCならいざ知らず。


2010/03/08

QNAP 設定 No.01 初期設定

Amazon.co.jpで注文していたTS-110が届きました。
という訳で、今回は初期設定をしたいと思います。

といっても、クイックセットアップガイドが付属しているので迷う事は無いと思います。
HDDを止めるねじと、ケースを止めるねじの山が潰れそうな感じですべるので、軽く止めるような気持ちで止めましょう。
電源コードは、コンセント側は普通ですが、ACアダプタとの接続はめがねコードなどと呼ばれる2極アダプタ接続ではなく。ミッキーマウス型の3極アダプタですね。
ケーブルが太いので、これなんか使用すれば細くていいかもしれないですね。
ELECOMなら、T-PCM3Lシリーズ T-PCM3シリーズですかね。
ACアダプタ本体は小さくて、ロッテ板ガムの9枚1パックを2回りくらい大きくさせた程度です。

CDからQNAP FinderをインストールしてTS-110の初期化を進めるわけですが、画面は英語です。
右上にプルダウンメニューがあるので、日本語にしましょう。
それとIPを設定できるところがありますが、ひとまずDHCPのまま設定します。
ここを固定IPで別なIPを設定すると、一番最後のHDDのセットアップが終わった時、ブラウザの画面が遷移せず、設定がいつまでも終わらない状態になります。
# 実際には終わっているのだが、IPが違うので終了画面を呼び出せない。
そのせいで2時間程度放置しっぱなしにしてしまい、時間を無駄にしてしまいました。

設定画面自体日本語化されているので、ここで説明する必要も無いんですよね。

DDNSで対応しているサービスは
・www.dyndns.com
・update.ods.org
・members.dhs.org
・www.dyns.cx
・www.3322.org
・www.no-ip.com
です。
生憎自分の使用しているDDNSサービスは無かったので、これから買う人の参考になれば。
# マイナーなieServer.Netですから、あるとは思ってませんでしたが。
# CentOSで自動更新しているので問題ないですけど。

Sambaのゴミ箱機能が「ネットワークリサイクルビン」という名前なのがなんか受けるw。
不良スキャンのチェックや、HDDのテストがあるので設定を始める前にやっておくといいと思います。
次回はSamba等のスピード比較をしてみたいなと思います。

2010/03/07

CentOS5.X 設定 No.10 netatalk (AFP over TCP) No.01 追記有

Mac OSとの通信の為、AFPを実装しようと思います。

ファイルサーバの場合、
対Windowsなら、Samba
対Linuxなら、NFS
対Mac OSなら、AFP
という形になると思います。
Mac OSはNFSも使用できるので、NFSで代用する事も可能ですが、Macでの自動マントがうまく行かなかったので、AFPを実装してみようと思います。
各プロトコル等の説明や設定は以下を参照して下さい。
「netatalk and samba」

参考にしたサイトは
notohirogさんの「CentOS 5でAFPを使ってファイル共有を行うには」
うえちょこ@ぼろぐさんの「[mac]netatalk でmacのEclipseからVMware上のCentOSにアクセス」
です。

[root@CentOS]# wget http://www003.upp.so-net.ne.jp/hat/files/fedora/12/SRPMS/netatalk-2.1.0-0.1.69.beta1.fc12.src.rpm
[root@CentOS]# rpm -ivh netatalk-2.1.0-0.1.69.beta1.fc12.src.rpm
[root@CentOS]# cp -p /usr/src/redhat/SPECS/netatalk.spec /usr/src/redhat/SPECS/netatalk.spec.back
[root@CentOS]# vi /usr/src/redhat/SPECS/netatalk.spec
37行目に「# If you use CentOS, remove tcp_wrappers-libs」とあるので、39行目を以下のように変更します。
Requires: pam cracklib openssl cups-libs krb5-libs perl libgcrypt tcp_wrappers tcp_wrappers-libs

Requires: pam cracklib openssl cups-libs krb5-libs perl libgcrypt tcp_wrappers

47〜50行目に
# If you use CentOS, replace
# quota-devel -> quota
# cracklib-devel -> cracklib
# tcp_wrappers-devel -> tcp_wrappers
とあるので、52行目を以下のように変更する。
BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel krb5-devel libgcrypt-devel quota-devel cracklib-devel tcp_wrappers-devel

BuildRequires: pam libtool automake autoconf openssl-devel pam-devel cups-devel krb5-devel libgcrypt-devel quota cracklib tcp_wrappers

# viで行数を指定するには「:set nu」
# 指定行にジャンプするには「指定行G」
# 「/CentOS」で検索した方が早いかもしれませんが。

[root@CentOS]# rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
「エラー:ビルド依存性の失敗:」と出たら、パッケージが足りないので、yumでインストールして下さい。
因に自分は、pam-devel, cups-devel, libgcrypt-devel, db4-devel >= 4.6 が足りないと言われました。

db4-develは4.6以上でないといけないらしいが、CentOS5.4では4.3.29がインストールされる。
という事で、今までの方法では無理。
打開策として、netatalkのバージョンを下げる事にしよう。

参考サイトは
M.C.P.C.さんの「x86_64のCentOS 5.3にnetatalk 2.05RC1を入れてみた」
HATさんの「netatalk 2.1beta1 リリース [netatalk]」
「netatalk2.0.5のRPM置き場」を辿ると、ここまで来る。

[root@CentOS]# wget http://kojipkgs.fedoraproject.org/packages/netatalk/2.0.5/2.fc13/src/netatalk-2.0.5-2.fc13.src.rpm
[root@CentOS]#rpm -ivh netatalk-2.0.5-2.fc13.src.rpm
「エラー: アーカイブの伸長に失敗:」「MD5 チェックサムが適合しません。」だと。
[root@CentOS]# rpm -ivh --nomd5 netatalk-2.0.5-2.fc13.src.rpm
でMD5をチェックしないようにして回避。
警告はいくつか出ますが、気にせずに行きましょう。

/usr/src/redhat/SPECS/netatalk.specの内容で
「quota-devel」は「quota」に。
「cracklib-devel」は「cracklib」に。
「tcp_wrappers-libs」と「tcp_wrappers-devel」は「tcp_wrappers」に変更します。
[root@CentOS]# cp -p /usr/src/redhat/SPECS/netatalk.spec /usr/src/redhat/SPECS/netatalk.spec.back
[root@CentOS]# vi /usr/src/redhat/SPECS/netatalk.spec
[root@CentOS]# rpmbuild -bb /usr/src/redhat/SPECS/netatalk.spec
/usr/src/redhat/RPMS/配下にRPMが3つあればO.K.
[root@CentOS]# rpm -ivh /usr/src/redhat/RPMS/i386/netatalk-*2.0.5-2.i386.rpm
「エラー: 依存性の欠如:」「/usr/local/bin/perl は netatalk-2.0.5-2.i386 に必要とされています」
とでたので、「/usr/local/bin/perl」が必要らしい。
[root@CentOS]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
とでるので、リンクはあるはず。
という訳で、
[root@CentOS]# rpm -ivh --nodeps /usr/src/redhat/RPMS/i386/netatalk-2.0.5-2.i386.rpm
でインストール。

/etc/atalk/配下が設定ファイルらしい。
後は適宜に変更する。
参考サイトは
らむの備忘録さんの「CentOS でAppleTalkServerを動かしてみる」
[root@CentOS]# cp -p /etc/atalk/netatalk.conf /etc/atalk/netatalk.conf.back
[root@CentOS]# vi /etc/atalk/netatalk.conf
ATALK_MAC_CHARSET='MAC_ROMAN'
↓日本語環境だから
ATALK_MAC_CHARSET='MAC_JAPANESE'

ATALK_UNIX_CHARSET='LOCALE'
↓サーバはUTF-8で統一しているから
ATALK_UNIX_CHARSET='UTF8'

ATALKD_RUN=yes
↓Apple TalkではなくTCPを使用するため?
ATALKD_RUN=no

[root@CentOS]# cp -p /etc/atalk/afpd.conf /etc/atalk/afpd.conf.back
[root@CentOS]# vi /etc/atalk/afpd.conf
最後に以下を追記
- -uamlist uams_dhx.so -savepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8
[root@CentOS]# cp -p /etc/atalk/atalkd.conf /etc/atalk/atalkd.conf.back
[root@CentOS]# vi /etc/atalk/atalkd.conf
ポートが複数ある場合は、最後に使用するLANポートを追記
eth0
[root@CentOS]# cp -p /etc/atalk/AppleVolumes.default /etc/atalk/AppleVolumes.default.back
[root@CentOS]# vi /etc/atalk/AppleVolumes.default
最後に共有するフォルダの絶対パスを追記

[root@CentOS]# /etc/rc.d/init.d/atalk start
[root@CentOS]# chkconfig atalk on
iptablesを使用しているならば、TCPとUDPで548番を開ける事。
Macから「command + k」で「afp://[サーバのIP]」で接続できるはず。
自分は駄目だったので、設定の見直しですね。

追記
netatalk2.0.Xではシンボリックリンクが辿れないという問題はSambaと一緒。
2.1以降で辿れるようになっているらしい。
という訳で、現時点におけるnetatalkを実装する意味なし。
NFSを自動マウントする設定の見直しを優先事項としたいと思います。

2010/03/06

CentOS5.X 設定 No.09 phpMyAdmin

参考サイトである、「CentOS で自宅サーバー構築」ではまったので、備忘録として。

「CentOS で自宅サーバー構築」の「MySQL用GUI設定ツール導入 (phpMyAdmin)」において
[root@centos ~]# svn checkout https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/tags/STABLE/phpMyAdmin phpmyadmi
とある。
これはphpMyAdminの最新版を取得してくるコマンドである。
phpMyAdminの最新版はPHP5.2以上で無いと動作しない。
しかし、CentOS5.4におけるPHPは5.1.6である。
これではphpMyAdminが動作せず、ブラウザには「PHP 5.2+ is required」と表示される。
なので、PHPが5.2未満でも動作するphpMyAdminを取得してくる必要がある。
phpMyAdminの2.Xなら大丈夫だという情報を得て、以下のコマンドに切り替えました。
[root@centos ~]# svn checkout https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/tags/RELEASE_2_11_9_6/phpMyAdmin/ phpmyadmin
これで、phpMyAdminは動作しました。

しかし、今度は「mcrypt 拡張をロードできません。PHP の設定を確認してください」という表示が。
[root@centos ~]# yum install php-mcrypt
で大丈夫でした。

HDDの初期化

PCを工場出荷状態に戻す(リカバリ)話ではありません。
HDDを破棄する際にデータを復元されないようにするお話。

市販のソフトやWindowsでも出来るみたいですが、LinuxのLiveCDを使用します。
なぜなら、見やすいから。
後、PCが一台しか無い場合でも、ネットにつないで暇つぶしが出来るから。

UbuntuのLiveCDを使用します。
日本語化されている「Ubuntu Desktop 日本語 Remix」なるものが、日本のUbuntuのサイト( http://www.ubuntulinux.jp/ )にありますので、それをダウンロードしてCDに焼いて下さい。

次に、システムをシャットダウンし、消去するHDD以外を外す。
# HDDの容量等で見分けがつけば問題ないですが。
PCを起動させ、CDからUbuntuを起動させる。

消去コマンドを使用するにあたって、HDDの識別記号が必要です。
本当は端末(コンソール、ターミナル)からfdisk等で調べるのですが、Ubuntuであれば
システム > システム管理 > パーティションエディタ
を開きます。
これの右上にあるプルダウンから消去したいHDDを選択します。
そのHDDは「/dev/sdX」となっているはずです。
# 機械が古い場合、「/dev/hdX」となっているかも?
# IDE接続のHDDの場合はそうなるはず。
その「/dev/sdX」を使用しますので、忘れないで下さい。

次は
アプリケーション > アクセサリ > 端末
を開いて下さい。
その端末に
Ubuntu@Ubuntu:~$ sudo swapoff /dev/sdX
と入力し、消去したいHDD上からシステムを一掃します。
Ubuntu@Ubuntu:~$ sudo shred -zvf -n 3 /dev/sdX
と入力します。
-nは、ランダム書き込みの回数
-zは、最後にzero書き込みを行う
-vは、進捗状況を出力
-fは、パーミッションを出来る限り無視する
を表します。
今回は3回で紹介しましたが、時間が許す限り繰り返すべきです。

他にはddコマンドを使用した方法があります。
Ubuntu@Ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdX bs=1k ; dd if=/dev/urandom of=/dev/sdX bs=1k ; dd if=/dev/urandom of=/dev/sdX bs=1k ; dd if=/dev/zero of=/dev/sdX bs=1k
「;」でつないでいますが、本当は4個のコマンドです。
if=/dev/zeroは、zero書き込みを行う。
if=/dev/urandomは、ランダム書き込みを行う。
bsは、一度に読み書きするサイズを指定します。
指定しない場合は、512byteだそうです。
Ctrl+cでコマンドをキャンセルしながら、最適なサイズを探して下さい。
なので、上記のコマンドはzero書き込みを1回行い、2回ランダム書き込みをし、最後にzero書き込みを行うという事ですね。

ddコマンドには進捗を示すオプションがありません。
よって、端末にて別タブを開き、
Ubuntu@Ubuntu:~$ top
を入力してCtrl+cでキャンセルし、ddのPIDを確認。
または
Ubuntu@Ubuntu:~$ ps -A | grep dd
と入力して、下の方のddコマンドのPIDを確認して下さい。
Ubuntu@Ubuntu:~$ sudo kill -USR1 $PID
と入力すると、ddコマンドが走っている端末のタブに進捗状況が表示されます。
定期的に表示させたい場合は
Ubuntu@Ubuntu:~$ watch -n 300 sudo kill -USR1 $PID
と入力します。これで300秒=5分単位で進捗状況が表示されます。
# 出来ればパーセンテージまで表示できればよかったのですが、そこまでコマンドの組み合わせが思いつきませんでした。

最後に、ハンマーやドリルで物理的に破壊すると安全度が増しますが、強力な磁石やガラスを使用している部分もあるHDDもあるのでけがに気をつけて行いましょう。

自分は初期不良等が怖いので、HDDを買って来たら必ずddコマンドでzero書き込みを行ってから使用するようにしています。
今もUbuntu 8.04のLiveCDでeSATA接続のWD20EARSにzero書き込み中です。
速度は11MB/sくらいですね。
bsオプションを間違えた感がありますが。。。
始めた時が時間がなかったので適当にやったので。。。
WD**EARSがLinixやWindows XPに対しての速度が遅いらしいので、それも影響しているかもしれませんが。

2010/03/03

CentOS5.X 設定 No.08 umaskとか

ファイルサーバとかですと、一人よりも大人数で共有している場合が多いかと思います。
その場合のグループとか、アクセス権に関してまとめておきたいと思います。

何も設定していない初期状態では、ユーザを新規作成すると1:1でユーザ名と同じグループが作成されます。
# 勿論、既存のグループを指定してユーザを新規作成する事も可能ですが。

ここで、ユーザを新規作成します。
uid=500(userA) gid=500(userA) 所属グループ=500(userA)
uid=501(userB) gid=501(userB) 所属グループ=501(userB)
uid=502(userC) gid=502(userC) 所属グループ=502(userC)
としよう。
ここで、userAさんのプロジェクトにuserBさんが応援に来ました。
その為、userAさんとuserBさんはファイルを共同管理しなくてはいけなくなった。
しかし、デフォルトのアクセス権はディレクトリならば755、ファイルならば644となっている。

ここで、一端デフォルトのアクセス権の確認方法に移る。
[user@CentOS]$ umask
を実行するとデフォルトのアクセス権が確認できる。
[userA@CentOS]$ umask
0022
となるはずだ。
後ろ3桁が許可しないアクセス権を示しているので、ディレクトリなら777、ファイルなら666から引き算する必要がある。
ディレクトリ:777 - 022 = 755
ファイル:666 - 022 = 644
なので、自分以外は参照できるが、書き換えできない状態である。
これでは、userAさんとuserBさんはファイルが共同管理できない。
共同管理するために、
[userA@CentOS]$ chmod 777 [共同管理したいディレクトリのパス]
を実行したとしよう。
共同管理は出来るようになったが、プロジェクトに関係ないuserCさんまで閲覧及び書き換えまで出来るようになってしまった。
これではまずいので、どうすればよかったのかを説明しよう。

最初にuserAさんはプロジェクト用のグループ(projectAB)を作成しておきます。
[root@CentOS]# groupadd projectAB
プロジェクト用の新規ディレクトリを作成します
[root@CentOS]# mkdir -p /home/projectAB
[root@CentOS]# ls -al /home/
drwxw-xw-x 数値 root root 数値 変更日付 projectAB
なので、このままではrootの所属でuserA&userBは手出しが出来ません。
そこで所有者とグループを変更します。
[root@CentOS]# chown userA:projectAB /home/projectAB
[root@CentOS]# ls -al /home/
drwxw-xw-x 数値 userA projectAB 数値 変更日付 projectAB
グループに所属しているれば書き換えできるようにグループにもアクセス権を与えます。
この際、グループにセットIDも一緒に与えておきましょう。
こうする事によって、セットIDが与えられたディレクトリの配下でディレクトリ or ファイルを作成した場合、セットIDを与えた権限を保持したまま作成されます。
[root@CentOS]# chmod 2775 /home/projectAB
[root@CentOS]# ls -al /home/
drwxwrsw-x 数値 userA projectAB 数値 変更日付 projectAB

セットIDが付与されているので
[root@CentOS]# mkdir -p /home/projectAB/test
[root@CentOS]# ls -al /home/projectAB
drwxwrsw-x 数値 root projectAB 数値 変更日付 test
となる。
これで、projectAB配下で誰がファイルを作ろうと読み書きが出来るようになる。
もしかすると
drwxw-sw-x 数値 root projectAB 数値 変更日付 test
となる可能性もある。
その場合は、umaskを設定する。
[userA@CentOS]$ umask 002
で、ログアウトするまで、新規作成するファイルはグループまで読み書き可能な状態で作成される。
これを恒久的にするには、「/etc/.bashrc」に設定すればいいのですが、全てのユーザに適応されてしまうので問題です。
各ユーザの「~/.bashrc」に「umask 002」と記すと、そのユーザだけ新規作成するファイルのアクセス権が変更になる。

最後に。
SSHサーバー構築(OpenSSH) - CentOSで自宅サーバー構築( http://centossrv.com/openssh.shtml )の「chrootユーザー作成」を参照してユーザを作成しました。
この時、各ユーザのホームのアクセス権と所有者を変更するとSSHでログインできなくなります。
グループに関しては変更しても大丈夫ですが、chrootなので、意味はありませんね。
強いて言うなら、chrootで作成しなかったユーザが所属しているグループにしておくと管理がしやすいかも。
権限的には
root > rootになれるユーザ > 普通ユーザ > chrootユーザ
ですね。

2010/03/01

本日の購入物

PCパーツ系統を買ったらメモ代わりに投稿する。という目的でBlogを始めたでのすが。。。
ま、気を取り直して。
今日というか、正確な時間的には昨日ですが。
amazon.co.jpにて、QNAPの「TS-110」を17,820円で
ツクモのWebショップにて、WesternDigitalの「WD20EARS」を11,999円で
購入しました。
amazon.co.jpでQNAP注文してもなかなか来ないという噂もありましたが、2,000円も安かったので。
その日のうちに注文確定メールが来たので良しとしましょう。
ツクモも、土日限定のセールでしたし。
# でも、最近毎週やっているみたい。
両方送料無料だったし。。。
合計29,819円のお買い上げになります。
QNAP+WD**EARSのレビューが無かったので、WD**EADSにしようか迷いましたが1,000安かったので。
# 2ch情報だと、速度がかなり悪いらしいけど。
# ま、遊びだし。駄目ならメインPCのWD10EADSと交換という事で。

WesternDigital HDD 一覧

よくお世話になっているサイトが去年を境に更新されなくなっているので、データを引き継ぎつつ新しいHDDを追加してみました。
WesternDigital HDD 一覧表

別ページで開く

参考したサイトは「AMR Station」( http://www.amrstation.com/style/ )

表にしたのは3.5インチHDDだけですが、そのうち2.5インチも表にまとめたいと思います。
WesternDigital信者ですので、それ以外には興味ありません!