So-net無料ブログ作成
検索選択
エステ

Magic Mouse とても電池の減りが早いので。。。 [Mac]

iMac↓にもついてきましたが、

その前に単独でも購入していて、都合2個あるMagic Mouse


Apple Magic Mouse MB829J/A

Apple Magic Mouse MB829J/A

  • 出版社/メーカー: アップル
  • メディア: エレクトロニクス


とっても便利なのですが、弱点はとても電池の減りが早いのです。

スクリーンショット(2010-02-28 0.09.16).png
一週間くらいで電池が半分くらい↑↑なくなります[たらーっ(汗)]

Magic Mouseは単三電池を2本使って動作するわけですが、
しょっちゅう電池を交換しなければならないのです(^^;)

交換の作業は耐えられますが、いつ電池無くなって、マウスが使えなくなるかと思うと、
電池のストックが気になって、ちょっと落ち着きません[あせあせ(飛び散る汗)]

そんなわけで、SANYOのeneloopを買いました。

SANYO eneloop 充電器 単3形4個セット (単3形・単4形兼用) N-TG1S

SANYO eneloop 充電器 単3形4個セット (単3形・単4形兼用) N-TG1S

  • 出版社/メーカー: 三洋電機
  • メディア: エレクトロニクス

充電器と単3充電池が4本ついて1,880円はお買い得[揺れるハート]

これで単3電池のストックを気にしなくてよくなりました。

IMG_1064.jpg


ちなみに、キーボードBluetoothですが、こちらはほとんど減りません。。


netatalk 2.1beta1 試してみました♪ [Netatalk]

せっかくnetatalk2.0.5を入れたばかりですが、「もう古い!」と
言われてしまいましたので(笑)、2.1beta1を試してみました。

ubuntu9.10でのnetatalk2.1beta1インストールメモです♪


debパッケージは用意されていないので、ソースをコンパイルしなくてはなりません。。

開発環境を入手
# apt-get install build-essential

必要なライブラリたちを入手
Libgcryptのconfigure時に「Libgpg-errorがないよ」と怒られるので、
Libgpg-error も入手。

これらを /usr/local/src あたりにおいて展開して、makeします。

# tar xjvf libgpg-error-1.7.tar.bz2
# cd libgpg-error-1.7/
# ./configure
# make
# make check
# make install

# tar xjvf libgcrypt-1.4.5.tar.bz2
# cd libgcrypt-1.4.5/
# ./configure
# make
# make check
# make install

# tar zxvf db-4.8.26.tar
# cd db-4.8.26/build_unix/
# ../dist/configure
# make
# make install

と、ここで。

OpenSSLも入手して入れておいたのですが..

--
-L/usr/local/src/netatalk-2.1beta1/libatalk -L/usr/local/ssl/lib64 -L/usr/local/ssl -lcrypto  
/usr/bin/ld: cannot find -lcrypto
collect2: ld returned 1 exit status
make[3]: *** [afppasswd] Error 1
make[3]: Leaving directory `/usr/local/src/netatalk-2.1beta1/bin/afppasswd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/netatalk-2.1beta1/bin'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netatalk-2.1beta1'
make: *** [all] Error 2
--

こんな感じでnetatalkのmakeが通らないのですが、
調べてみると、もともとubuntuにopensslが入っているようなので、
libssl-dev を追加でインストールします。
で、もともと入っていた方のopensslを使うことにします。
# といいますか、そうしないと、makeが通らないので。。

# apt-get install libssl-dev


netatalk2.1beta1もここから入手。

# tar zxvf netatalk-2.1beta1.tar
# cd netatalk-2.1beta1/
# ./configure --enable-debian --with-bdb=/usr/local/BerkeleyDB.4.8

参考までに、結果の「using libraries」を掲載しておきます。
configureがうまくいかないときの参考まで。
--
Using libraries:
    LIBS =  -L$(top_srcdir)/libatalk
    CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__((unused))" -g -O2 -I$(top_srcdir)/sys
    SSL:
        LIBS   =  -L/usr/lib64 -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   = -L/usr/local/lib -lgcrypt -lgpg-error
        CFLAGS = -I/usr/local/include
    BDB:
        LIBS   =  -L/usr/local/BerkeleyDB.4.8/lib -ldb-4.8
        CFLAGS =  -I/usr/local/BerkeleyDB.4.8/include/
Configure summary:
    Install style:
         debian
    AFP:
         AFP 3.x calls activated: yes
         Large file support (>2GB) for AFP3: yes
         Extended Attributes: files | native
         DDP enabled: yes
    CNID:
         backends:  dbd last tdb
    UAMS:
         DHX     ( SHADOW)
         DHX2    ( SHADOW)
         RANDNUM ( SHADOW)
         passwd  ( SHADOW)
         guest
    Options:
         CUPS support:           no
         SLP support:            no
         tcp wrapper support:    no
         quota support:          yes
         admin group support:    yes
         valid shell check:      yes
         cracklib support:       no
         dropbox kludge:         no
         force volume uid/gid:   no
         Apple 2 boot support:   no
         ACL support:            no
--

うまくいかないときは、
    SSL:
        LIBS   =  -L/usr/local/ssl/lib64 -L/usr/local/ssl -lcrypto
などとなっていました。


話をもどして、、

# make
# make install

あと、avahiも入れておきます。

apt-get install avahi-daemon

あとは netatalkの設定です。

# vi /usr/local/etc/netatalk/AppleVolumes.default

最終行に以下を追記します。
:DEFAULT: maccharset:MAC_JAPANESE volcharset:UTF8 options:usedots,upriv cnidscheme:dbd

/dev/shm "ramdisk" allow:nao cnidscheme:dbd
/st1/nao "nao" allow:nao cnidscheme:dbd

# 最初はオプションに ea:sys も入れておいたのですが、ファイルのコピーに
# 失敗することがあるので、消しました。 
# この設定でも、ファルシステムが拡張属性をサポートしていないので、ログには
# volume "nao" does not support Extended Attributes, using ea:ad instead
# と。

# vi /usr/local/etc/netatalk/afpd.conf

最終行に以下を追記します。

 -tcp -uamlist uams_dhx2.so -nosavepassword\
 -maccodepage MAC_JAPANESE -unixcodepage UTF8


# vi /etc/default/netatalk 

以下のように修正
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'

ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no


こちらのファイルは新規作成。
# vi /etc/avahi/services/afpd.service

以下の内容を書き込みます。

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
</service-group>

設定は以上。


そして、サービスを再起動。

# /etc/init.d/avahi-daemon restart
# /etc/init.d/netatalk restart


つながった〜[るんるん]


一応、

# /usr/local/sbin/afpd -V
afpd 2.1beta1 - Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

        AFP3.x support: Yes
      Transport layers: TCP/IP DDP
         CNID backends: dbd last tdb 
           SLP support: No
  TCP wrappers support: No
         Quota support: Yes
   Admin group support: Yes
    Valid shell checks: Yes
      cracklib support: No
        Dropbox kludge: No
  Force volume uid/gid: No

             afpd.conf: /usr/local/etc/netatalk/afpd.conf
   AppleVolumes.system: /usr/local/etc/netatalk/AppleVolumes.system
  AppleVolumes.default: /usr/local/etc/netatalk/AppleVolumes.default
       UAM search path: /usr/local/etc/netatalk/uams/
  Server messages path: /usr/local/etc/netatalk/msg/




試しに、iMacからファイルサーバにafpでつなで、
test.txt なるファイルをコピーしたところ、以前のようにコピー先の
ディレクトリに ._test.txt が作られることはなくなりました。

また、.AppleDouble にも ._test.txt は作られず、代わりに、

test.txt  test.txt::EA  test.txt::EA::com.apple.TextEncoding

なるファイルが作られていました。

もとのディレクトリのtest.txtを削除すれば、ちゃんと.AppleDoubleの
ファイルたちも消えてなくなります。


ちなみに、netatalk2.1beta1のパフォーマンスは2.0.5と同程度で
特に向上も、低下もしていない様子です。たぶん。


再インストール前にちょっと整理 [Server hardware]

起動できなくなってしまい、やむを得ず、再インストールです。

そこで、再インストールの前にちょっと整理してみることにしました。

要件としては、ファイルサーバとして使えればよくて

* netatalk-2.0.5
* samba-3.4

が使えて、以前は / はusbメモリを二つ使ってraid1としていたのですが、
こんな↓ちょいトラブルなどもちょくちょくあるので、

IMG_1045.JPG
# degradeしてないのに、なんか怒られる絵

もうraidはいらないかなと。。
むしろ、ちゃんと起動しているusbメモリをもう一個のusbメモリにdd
しておいた方がよいのではないかということです。

そして、以前使っていたDASは

センチュリー 裸族の二世帯住宅 CRNS35EU2

センチュリー 裸族の二世帯住宅 CRNS35EU2


で、ポートマルチプライヤーが必須だったのですが、DASを
Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

  • 出版社/メーカー: コレガ
  • メディア: エレクトロニクス
    こちらに変えて、ポートマルチプライヤーは不要となり、
    NICのチーミングもやめたので、PCI Experssも不要となったので、
    今使っている、マザーボード

    インテル Boxed Intel Desk Top Board G45FC BOXDG45FC

    インテル Boxed Intel Desk Top Board G45FC BOXDG45FC

    • 出版社/メーカー: インテル
    • メディア: エレクトロニクス
そして、PCI Expressに引っ張られて大きくなったPCのケースも
現行でなくてよくなったわけです。eSATAがついていればよいのです。

ただ、CPUは以前のatom330から

インテル Boxed Intel Celeron E3200 2.40GHz 1M LGA775 BX80571E3200

インテル Boxed Intel Celeron E3200 2.40GHz 1M LGA775 BX80571E3200

  • 出版社/メーカー: インテル
  • メディア: エレクトロニクス




へ移行したことによって大幅にファイル転送速度が向上したので
これはこのまま保持したいハードウェアです。

ケース、マザーボードはとりあえず、そのままとして、RAIDはやめておくことに
します。

では、再構築っ[るんるん]

RAIDでなければOSもubuntuでなくてもよいのですが、
もう慣れてしまったので、ubuntu9.10でいきます〜





/ ディレクトリをext3からext4に変換したら、起動しなくなった。。(泣) [不具合・問題・解決方法?とか]

まぁ、なんです。ちょっとものは試しと、、、
/ をext3からext4に変えてみようとぽちっとしたのですが、、、

# tune2fs -O extents,uninit_bg,dir_index /dev/md0
tune2fs 1.41.9 (22-Aug-2009)

Please run e2fsck on the filesystem.

# e2fsck -y /dev/md0
e2fsck 1.41.9 (22-Aug-2009)
/dev/md0 is mounted.  

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/dev/md0: recovering journal
One or more block group descriptor checksums are invalid.  Fix? yes

Group descriptor 0 checksum is invalid.  FIXED.
Group descriptor 1 checksum is invalid.  FIXED.
Group descriptor 2 checksum is invalid.  FIXED.
Group descriptor 3 checksum is invalid.  FIXED.
Group descriptor 4 checksum is invalid.  FIXED.
・・・・(中略)
Group descriptor 57 checksum is invalid.  FIXED.
Group descriptor 58 checksum is invalid.  FIXED.
/dev/md0 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Entry 'wins.dat' in /var/lib/samba (292696) has deleted/unused inode 291607.  Clear? yes

Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Unattached zero-length inode 291619.  Clear? yes

Pass 5: Checking group summary information
Block bitmap differences:  +1186103 -1202634
Fix? yes

Inode bitmap differences:  -291607
Fix? yes


/dev/md0: ***** FILE SYSTEM WAS MODIFIED *****
/dev/md0: ***** REBOOT LINUX *****
/dev/md0: 87128/476720 files (0.4% non-contiguous), 392072/1903664 blocks

そして、fstabを書き換えて起動したところ。。。

またもや、

could not access pid file for nmbd

 

などと言われ起動できず、install CDのレスキューモードでも

/dev/md0をマウント出来ないと、怒られてしまいます。。

 

困りました[たらーっ(汗)]




CG-HDC4EU3500で使われているコントローラチップ メモ [CG-HDC4EU3500]

ファイルサーバのDASとして利用しているCG-HDC4EU3500ですが
使用しているチップについてのメモです。



使われているコントローラチップはOXUFS936QSEです。

OXUFS936QSE.gif

詳細はこちらに。

ちなみに、
mathey Hydra Super-S LCM MHDR-SC800LCM

mathey Hydra Super-S LCM MHDR-SC800LCM

  • 出版社/メーカー: mathey
  • メディア: エレクトロニクス
こちらも同じチップを使っているようです。

ですので、出来ること・出来ないことが基本同じですね。


あ〜。起動できないっ。 [不具合・問題・解決方法?とか]

/etc/network/interfaces の記述を間違えたことが始まりでした。

could not access pid file for nmbd

 

と言われたまま、うんともすんとも言いません。


どうやらこれはubuntu9.10 の既知のバグのようです。


sambaを起動する設定にしてあり、かつ、ネットワークがリンクアップ

できないとき、このように宣い、停止するとか。


仕方ないので、install CDのレスキューモードで立ち上げて、

/etc/network/interfaces の間違いを修正して、再起動です。


もう間違いませんように。[あせあせ(飛び散る汗)]


fstabを書き間違えると、面倒なことになるわけです。。 [不具合・問題・解決方法?とか]

/ ルートディレクトリの行を書き間違えると致命的な訳です。

当然立ち上がらず、途中でエラーをはいて、single userモード(今でもあるの??)
的な立ち上がりをして、Read Onlyで / がマウントされています。

Read Only なので、間違えた/etc/fstabも書き換えられません。

こまった。。

でもふつーにrwをつけて、リマウントすればいいじゃないですか〜[たらーっ(汗)]
気づくまで30分途方に暮れていましたが。。

# mount -t ext4 -o rw,remount /dev/md0 /

よかったです。

最悪、install CDからレスキューモードで立ち上げて、/dev/md0をマウント
すればよいのですが、最近のレスキューモードって立ち上がるの、長くないですか〜?



e1000eドライバを新しく。 [他パフォーマンス改善]

intelのLinux用で新しいドライバがリリースされています。

更新してみましょう。


$ tar zxvf e1000e-1.1.2.1a.tar.gz

$ cd e1000e-1.1.2.1a/src/

# make install
Makefile:130: *** Compiler not found.  Stop.

ああ、そうでした。
開発環境は何も入れていませんでした(^^;)

というわけで、そっちがさきです。

# apt-get install build-essential

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.31-14 linux-headers-2.6.31-14-server
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  binutils dpkg-dev fakeroot g++ g++-4.4 gcc gcc-4.4 libc-dev-bin libc6-dev libgomp1 libstdc++6-4.4-dev
  linux-libc-dev
Suggested packages:
  binutils-doc debian-keyring debian-maintainers g++-multilib g++-4.4-multilib gcc-4.4-doc
  libstdc++6-4.4-dbg gcc-multilib manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc
  gcc-4.4-multilib libmudflap0-4.4-dev gcc-4.4-locales libgcc1-dbg libgomp1-dbg libmudflap0-dbg
  libcloog-ppl0 libppl-c2 libppl7 glibc-doc libstdc++6-4.4-doc
The following NEW packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-4.4 gcc gcc-4.4 libc-dev-bin libc6-dev libgomp1
  libstdc++6-4.4-dev linux-libc-dev
0 upgraded, 13 newly installed, 0 to remove and 5 not upgraded.
Need to get 15.9MB of archives.
After this operation, 57.1MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://jp.archive.ubuntu.com karmic-updates/main binutils 2.20-0ubuntu2 [1,661kB]
Get:2 http://jp.archive.ubuntu.com karmic-updates/main libc-dev-bin 2.10.1-0ubuntu16 [217kB]
Get:3 http://jp.archive.ubuntu.com karmic-updates/main linux-libc-dev 2.6.31-19.56 [743kB]
Get:4 http://jp.archive.ubuntu.com karmic-updates/main libc6-dev 2.10.1-0ubuntu16 [2,648kB]
Get:5 http://jp.archive.ubuntu.com karmic-updates/main libgomp1 4.4.1-4ubuntu9 [25.5kB]
Get:6 http://jp.archive.ubuntu.com karmic-updates/main gcc-4.4 4.4.1-4ubuntu9 [2,866kB]
Get:7 http://jp.archive.ubuntu.com karmic/main gcc 4:4.4.1-1ubuntu2 [5,074B]
Get:8 http://jp.archive.ubuntu.com karmic-updates/main libstdc++6-4.4-dev 4.4.1-4ubuntu9 [1,526kB]
Get:9 http://jp.archive.ubuntu.com karmic-updates/main g++-4.4 4.4.1-4ubuntu9 [5,502kB]
Get:10 http://jp.archive.ubuntu.com karmic/main g++ 4:4.4.1-1ubuntu2 [1,448B]                            
Get:11 http://jp.archive.ubuntu.com karmic/main dpkg-dev 1.15.4ubuntu2 [573kB]                           
Get:12 http://jp.archive.ubuntu.com karmic/main build-essential 11.4 [7,170B]                            
Get:13 http://jp.archive.ubuntu.com karmic/main fakeroot 1.12.4ubuntu1 [126kB]                           
Fetched 15.9MB in 6s (2,276kB/s)                                                                         
Selecting previously deselected package binutils.
(Reading database ... 78351 files and directories currently installed.)
Unpacking binutils (from .../binutils_2.20-0ubuntu2_amd64.deb) ...
Selecting previously deselected package libc-dev-bin.
Unpacking libc-dev-bin (from .../libc-dev-bin_2.10.1-0ubuntu16_amd64.deb) ...
Selecting previously deselected package linux-libc-dev.
Unpacking linux-libc-dev (from .../linux-libc-dev_2.6.31-19.56_amd64.deb) ...
Selecting previously deselected package libc6-dev.
Unpacking libc6-dev (from .../libc6-dev_2.10.1-0ubuntu16_amd64.deb) ...
Selecting previously deselected package libgomp1.
Unpacking libgomp1 (from .../libgomp1_4.4.1-4ubuntu9_amd64.deb) ...
Selecting previously deselected package gcc-4.4.
Unpacking gcc-4.4 (from .../gcc-4.4_4.4.1-4ubuntu9_amd64.deb) ...
Selecting previously deselected package gcc.
Unpacking gcc (from .../gcc_4%3a4.4.1-1ubuntu2_amd64.deb) ...
Selecting previously deselected package libstdc++6-4.4-dev.
Unpacking libstdc++6-4.4-dev (from .../libstdc++6-4.4-dev_4.4.1-4ubuntu9_amd64.deb) ...
Selecting previously deselected package g++-4.4.
Unpacking g++-4.4 (from .../g++-4.4_4.4.1-4ubuntu9_amd64.deb) ...
Selecting previously deselected package g++.
Unpacking g++ (from .../g++_4%3a4.4.1-1ubuntu2_amd64.deb) ...
Selecting previously deselected package dpkg-dev.
Unpacking dpkg-dev (from .../dpkg-dev_1.15.4ubuntu2_all.deb) ...
Selecting previously deselected package build-essential.
Unpacking build-essential (from .../build-essential_11.4_amd64.deb) ...
Selecting previously deselected package fakeroot.
Unpacking fakeroot (from .../fakeroot_1.12.4ubuntu1_amd64.deb) ...
Processing triggers for man-db ...
Setting up binutils (2.20-0ubuntu2) ...

Setting up libc-dev-bin (2.10.1-0ubuntu16) ...
Setting up linux-libc-dev (2.6.31-19.56) ...
Setting up libc6-dev (2.10.1-0ubuntu16) ...
Setting up libgomp1 (4.4.1-4ubuntu9) ...

Setting up gcc-4.4 (4.4.1-4ubuntu9) ...
Setting up gcc (4:4.4.1-1ubuntu2) ...

Setting up dpkg-dev (1.15.4ubuntu2) ...
Setting up fakeroot (1.12.4ubuntu1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode.

Setting up libstdc++6-4.4-dev (4.4.1-4ubuntu9) ...
Setting up g++-4.4 (4.4.1-4ubuntu9) ...
Setting up g++ (4:4.4.1-1ubuntu2) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode.

Setting up build-essential (11.4) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

で、再び。

# make install
make -C /lib/modules/2.6.31-19-server/build SUBDIRS=/home/nao/e1000e-1.1.2.1a/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-19-server'
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/netdev.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/ethtool.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/param.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_82571.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_ich8lan.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_80003es2lan.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_mac.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_nvm.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_phy.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/e1000_manage.o
  CC [M]  /home/nao/e1000e-1.1.2.1a/src/kcompat.o
  LD [M]  /home/nao/e1000e-1.1.2.1a/src/e1000e.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/nao/e1000e-1.1.2.1a/src/e1000e.mod.o
  LD [M]  /home/nao/e1000e-1.1.2.1a/src/e1000e.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-19-server'
gzip -c ../e1000e.7 > e1000e.7.gz
# remove all old versions of the driver
find /lib/modules/2.6.31-19-server -name e1000e.ko -exec rm -f {} \; || true
find /lib/modules/2.6.31-19-server -name e1000e.ko.gz -exec rm -f {} \; || true
install -D -m 644 e1000e.ko /lib/modules/2.6.31-19-server/kernel/drivers/net/e1000e/e1000e.ko
/sbin/depmod -a || true
install -D -m 644 e1000e.7.gz /usr/share/man/man7/e1000e.7.gz
man -c -P'cat > /dev/null' e1000e || true
man: 
cannot write to /var/cache/man/cat7/e1000e.7.gz in catman mode
e1000e.


完了〜
あ、古いドライバをバックアップするの忘れてた[たらーっ(汗)]



ちなみに、こういう怒られ方をすることもあります。

# make install
Makefile:70: *** Linux kernel source not found in any of these locations:
Makefile:71:                
Makefile:72: *** Install the appropriate kernel development package, e.g.
Makefile:73: *** kernel-devel, for building kernel modules and try again.  Stop.

その備忘録として。。。

# apt-get install linux-source
# cd /usr/src
# tar xf linux-source-2.6.31.tar.bz2 

そして、
# make install

OK!

ちなみに、intelのNICのドライババージョンはどうやって確認するのでしょうか?
はい。それらを取得するスクリプトがintelから用意されています。

こちら↓


さっそく。

あと、ethtoolも必要なので、

# apt-get install ethtool
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.31-14 linux-headers-2.6.31-14-server
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  ethtool
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 72.1kB of archives.
After this operation, 270kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com karmic/main ethtool 6+20090307-1 [72.1kB]
Fetched 72.1kB in 0s (349kB/s)
Selecting previously deselected package ethtool.
(Reading database ... 80676 files and directories currently installed.)
Unpacking ethtool (from .../ethtool_6+20090307-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up ethtool (6+20090307-1) ...



# chmod 755 netdriverinfo.sh

# ./netdriverinfo.sh 
bash: ./netdriverinfo.sh: /bin/bash^M: bad interpreter: No such file or directory

怒られたりします[たらーっ(汗)]
ちゃんとLFで保存しておいてほしいものです。

改行コードを変換するnkfコマンドをインストールします。

# apt-get install nkf
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.31-14 linux-headers-2.6.31-14-server
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  nkf
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 121kB of archives.
After this operation, 311kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com karmic/universe nkf 2.07-1build1 [121kB]
Fetched 121kB in 0s (284kB/s)
Selecting previously deselected package nkf.
(Reading database ... 80688 files and directories currently installed.)
Unpacking nkf (from .../nkf_2.07-1build1_amd64.deb) ...
Processing triggers for man-db ...
Setting up nkf (2.07-1build1) ...


そして、CR+LFからLFへ変換します。

# nkf -Lu ./netdriverinfo.sh >./netdriverinfo2.sh 


実行権限も与えます。

# chmod 755 netdriverinfo2.sh


それで。。

# ./netdriverinfo2.sh 
eth0 : 00:19.0
    Make/Model = Intel Corporation Device 5003
    Ethernet controller = Intel Corporation 82567LF-2 Gigabit Network Connection
    VenID:DevID = 8086:10cd
    Driver name = e1000e
    Driver version = 1.0.2-k2
eth1 : 02:00.0
    Make/Model = Intel Corporation Device a01f
    Ethernet controller = Intel Corporation 82574L Gigabit Network Connection
    VenID:DevID = 8086:10d3
    Driver name = e1000e
    Driver version = 1.0.2-k2

OKです[るんるん]

あらたにコンパイルしたのはバージョンが1.1.2.1aなので、
これはバックアップし忘れた[たらーっ(汗)]古いバージョンの方です。

再起動すると・・・・

# ./netdriverinfo2.sh 
eth0 : 00:19.0
    Make/Model = Intel Corporation Device 5003
    Ethernet controller = Intel Corporation 82567LF-2 Gigabit Network Connection
    VenID:DevID = 8086:10cd
    Driver name = e1000e
    Driver version = 1.0.2-k2
eth1 : 02:00.0
    Make/Model = Intel Corporation Device a01f
    Ethernet controller = Intel Corporation 82574L Gigabit Network Connection
    VenID:DevID = 8086:10d3
    Driver name = e1000e
    Driver version = 1.0.2-k2

あれれ。。変わっていません。。

なんでかなぁ[たらーっ(汗)]

気持ち悪いなぁ。。。

ちなみに、Bonding で mode=4だとどうなるのか? 試してみました。 [他パフォーマンス改善]

Bondingでmode=4を試すためには、、、

前提条件:
1. 各スレーブの速度と全/半二重を回復するためのベースドライバに
おける Ethtool サポート
2. IEEE 802.3ad 動的リンクアグリゲーションをサポートするスイッチ

とあるとおり、ハブがIEEE 802.3adに対応している必要があります。

たとえば、
PLANEX 8ポート ギガビットシンプルレイヤ2スイッチ(ジャンボフレーム) SWP-0208G

PLANEX 8ポート ギガビットシンプルレイヤ2スイッチ(ジャンボフレーム) SWP-0208G

  • 出版社/メーカー: プラネックス
  • メディア: エレクトロニクス




とか、

NETGEAR Inc. GS108T 8ポート ギガビットスマートスイッチ GS108T-100JPS

NETGEAR Inc. GS108T 8ポート ギガビットスマートスイッチ GS108T-100JPS

  • 出版社/メーカー: ネットギア
  • メディア: エレクトロニクス

です。

お値段的には、後者なのですが、前者のMiniGBIC用拡張ポートにも惹かれます(^ ^;)
# もちろん、今のところ拡張ポートを使用する予定などないのですが、、

でもでも、PLANEXはわたくしの中で、買ってはいけないダメベンダーリストに
入っています[あせあせ(飛び散る汗)]

ので、念入りに、下調べを。。。と思った矢先、マニュアルが公開されていません。
旧型番SW-0208Gは公開されているのですが。。。
一応、SW-0208Gをチェックです。最低限のマニュアルの作りにはなっています。
が、SWP-0208Gとは仕様がかなり変わっているので、当てにはできません。

なんとか、SWP-0208Gのマニュアルを手に入れたのですが、それはそれは、
お粗末なマニュアルです。総ページ数34ページで、ブラウザでの設定画面の
説明がただ繰り返されているだけで、マニュアルと呼べるような代物ではありません。
SW-0208Gのマニュアルが112ページで日本語化されているのに比べてもお粗末
極まりありません。

ちなみに、SWP-0208Gでのポートトランキングの設定画面はこんな感じ
スクリーンショット(2010-02-23 13.39.23).png

同じく、LACPの設定画面はこんな感じ
スクリーンショット(2010-02-23 13.39.47).png


一方、GS108Tは140ページのマニュアルも公開され、ファームの
バージョンアップもしばしば行われているようです。

ということで、GS108Tを調達し、mode=4を試してみました。

独特のユーザーインターフェースなので一瞬戸惑いますが、、
慣れれば特に問題ありません。

まず、LAG ConfigurationからLAG IDのチェックボックスを選択し、

スクリーンショット(2010-02-25 8.06.33).png
Admin Mode = Enable
LACP = Enable
と設定し、最後に右下の【APPLY】ボタンを押します。

次に、LAG Membershipを定義します。
スクリーンショット(2010-02-25 8.06.56).png
リンクアグリゲーションしたいポートNoを選択し(選択するとxとなります)
最後に、右下の【APPLY】ボタンを押します。

以上で完了です。

Linux側も設定を変えましょう。

# vi /etc/modprobe.d/bonding

の mode=0 を mode=4 と書き換えます。

そして、再起動♪

正しくリンク出来た場合は、

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 5
Number of ports: 2
Actor Key: 17
Partner Key: 3587
Partner Mac Address: 00:22:3f:f8:2f:64

Slave Interface: eth0
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:1c:c0:9c:27:32
Aggregator ID: 5

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:1b:21:53:7f:ac
Aggregator ID: 5

などと表示されます。

ちなみに、ベンチマークを取ってみますと、Bondingしない時相当のリード・ライト性能が
出ています。
ところが、念のため、ifconfigすると、、、、

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fe9c:2732/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2753612 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2496043 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3672414868 (3.6 GB)  TX bytes:1913575166 (1.9 GB)

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:2753237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2495783 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3672348130 (3.6 GB)  TX bytes:1913531504 (1.9 GB)
          Memory:ff600000-ff620000 

eth1      Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:375 errors:0 dropped:0 overruns:0 frame:0
          TX packets:260 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:66738 (66.7 KB)  TX bytes:43662 (43.6 KB)
          Memory:ff5c0000-ff5e0000 

と、いうぐあいに、片方のNICしか使われていないようです。

ここで、eth0のケーブルを引っこ抜くと、、今度はeth1を使ってしっかり
通信でき、Bondingしない時相当のリード・ライト速度が出ています。
もう一度、ifconfigすると、

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fe9c:2732/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2964904 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2687976 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3954425499 (3.9 GB)  TX bytes:2060353570 (2.0 GB)

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:2753246 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2495787 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3672349142 (3.6 GB)  TX bytes:1913531964 (1.9 GB)
          Memory:ff600000-ff620000 

eth1      Link encap:Ethernet  HWaddr 00:1c:c0:9c:27:32  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:211658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:192189 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:282076357 (282.0 MB)  TX bytes:146821606 (146.8 MB)
          Memory:ff5c0000-ff5e0000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3724 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3724 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:376808 (376.8 KB)  TX bytes:376808 (376.8 KB)

今度は、ベンチマークしたぶんだけ、eth1のRX,TXが増えています。

というわけでして、mode=4としてもリード・ライト性能の向上はありませんでした〜(>_<)
おしまい。

NETGEAR GS108T
IMG_1061.JPG
作りとしては、高級感はなく、電源もACアダプタ取りです。
機能としてはいろいろありそうなので、しばらく遊べそうです[るんるん]

結局のところBondingで高速化はできなかった訳で。。 [他パフォーマンス改善]

結論から申し上げますと、ファイルサーバのさらなる高速化はできなかった訳です。

iMac】-【Hub】=【ファイルサーバ】

と、まぁ、iMac-Hub間のリンクアグリゲーションが作成できなかったのが一因です。


APPLE iMac 27インチ 3.06GHz 1.0TB MB952J/A

APPLE iMac 27インチ 3.06GHz 1.0TB MB952J/A







iMac ↑ ですので、イーサネットの口は一つなのですが、AirMac(WLAN)があるので、
有線LANと無線LANを束ねてリンクアグリゲーションしようと思ったのですが。。

ちなみに、Mac OSXでのリンクアグリゲーションの作り方は、こんな感じです。
おそらく。。

環境設定→ネットワーク
スクリーンショット(2010-02-25 7.23.16).png
「仮想インターフェイスを管理」をぽちっ。


スクリーンショット(2010-02-25 7.22.51).png
「新規リンクアグリゲート」をぽちっ。


スクリーンショット(2010-02-25 7.23.58).png
イーサネットアダプタが二つ以上あればそれらを選択し、「作成」ボタンをぽちっ。

そう、AirMacはアグリゲートの対象インターフェイスとして認められず、
選択肢に挙がらないのです。。。

う〜ん、残念。

こんなこともあって、高速化は断念。

ちなみに、Bonding mode=0で試してみると、如実に低速化しました。
Bondingは高速化というよりは、負荷分散や冗長化が目的なので、致し方なしですね。

ベンチマーク結果はXbenchで、

Disk Test 38.03
Sequential 24.36
Uncached Write 20.51 12.59 MB/sec [4K blocks]
Uncached Write 73.93 41.83 MB/sec [256K blocks]
Uncached Read 44.01 12.88 MB/sec [4K blocks]
Uncached Read 12.63 6.35 MB/sec [256K blocks]
Random 86.66
Uncached Write 117.43 12.43 MB/sec [4K blocks]
Uncached Write 152.52 48.83 MB/sec [256K blocks]
Uncached Read 1722.80 12.21 MB/sec [4K blocks]
Uncached Read 32.78 6.08 MB/sec [256K blocks]

という具合に、Readの性能が著しく低下しました。
他のベンチマークでも同様の傾向でした(^^;)


いろいろ言い方ありますが。。。ちょっと整理。 [他パフォーマンス改善]

ネットワークインターフェースを束ねる技術にもいろいろあるようで、
ちょっと調べただけでも。。

ボンディング Bonding
チーミング Teaming
リンクアグリゲーション Link Aggregation
ポートトランキング Port Tranking
EtherChannel

などなどの言い方があるようです。

何がどう違うのでしょうか??

* ボンディング=Bonding
これはどうやら、Linux地方の方言のようです。
bondには元来「まとめる」という意味がありますが、LinuxのBondingモジュールを
用いることで、一台のコンピュータに取り付けられた複数のNICを利用し、負荷分散と
冗長化に備える仕組みです。
設定ファイルのmodeにより、動きを定義できます。詳細は後述。

*チーミング=Teaming
NICアダプタの機能名称としてよく見受けられます。
Intel,3Com,Realtekなどの各ベンダーは専用のツールなどを提供しており、
それらを適用することで、一台のコンピュータに取り付けられた複数のNICを
仮想化した一つのNICとして通信することができる仕組みです。
各ベンダーにより機能はさまざま。

*リンクアグリゲーション=Link Aggregation
*ポートトランキング=Port Tranking
*EtherChannel
どれもネットワーク機器の機能名称としてよく見受けられます。
ハブの複数のポートを仮想化した一つのポートとして見立て、主にハブ同士の
通信速度の向上と冗長化に備える仕組みです。
ポートトランキングと言わず、単に「トランキング」ということも。
アライドテレシスではポートトランキング、CISCOではEtherChannelと
言われるようです。
IEEEではIEEE802.3adとしてLACP(=Link Aggregation Control Protocol)が
標準化されています。ポートトランキングに対応していても、LACP




LinuxのBondingモジュールの設定項目modeについての覚え書き

balance-rr または 0
ラウンドロビンポリシー:利用可能なスレーブ群の最初から最後までの
一連の順番でパケットを送出します。このモードは負荷分散と耐障害性
を提供します。

active-backup または 1
アクティブバックアップポリシー:bond 中の1スレーブのみアクティ
ブです。別のスレーブはアクティブなスレーブが障害になった場合のみ
アクティブになります。ネットワークスイッチの混乱を避ける為、bond 
の MAC アドレスは外部からは単一のポート(ネットワークアダプタ)に
見えます。
このモードは耐障害性を提供します。primary オプションはこの
モードの挙動に影響します。

balance-xor または 2
XOR(排他論理和)ポリシー:選択された転送ハッシュポリシーに基づい
て転送します。デフォルトのポリシーは単純です [(送信元の MAC アド
レスと送信先の MAC アドレスの排他論理和)をスレーブカウントで割っ
た余り]。別の転送ポリシーは xmit_hash_policy オプション(後述)経
由で選択できます。
このモードは負荷分散と耐障害性を提供します。

broadcast または 3
ブロードキャストポリシー:全スレーブインターフェースから全てのパ
ケットを送出します。このモードは耐障害性を提供します。

802.3ad または 4
EEE 802.3ad 動的リンク集合です。同速度および同じ二重設定を共有
する集合グループを作成します。802.3ad 仕様に従い、アクティブな集
合の全スレーブを利用します。
外への通信のスレーブ選択が送信ハッシュポリシーにしたがって行われ
ます。このポリシーはデフォルトの単純 XOR ポリシーから後述の 
xmit_hash_policy オプションによって変更できます。全ての送信ポリ
シーが 802.3ad 準拠(特に 802.3ad 標準のセクション 43.2.4 で要求
されたパケットの順番ミスに関して)である訳ではない事に注意して下
さい。異なるピア実装は非準拠の変容許容性があります。

前提条件:
1. 各スレーブの速度と全/半二重を回復するためのベースドライバに
おける Ethtool サポート
2. IEEE 802.3ad 動的リンクアグリゲーションをサポートするスイッチ

ほとんどのスイッチは 802.3ad モードを有効にする為の何らかの設定
が必要になります。

balance-tlb または 5
適応転送負荷分散: 特別なスイッチサポートを必要としないチャネル結
合です。送信は各スレーブの現在の負荷(速度に関連して計算されます) 
に従って分散されます。受信は現在のスレーブによって行われます。受
信しているスレーブが障害を起こした場合、別のスレーブが障害した受
信スレーブの MAC アドレスを引き継ぎます。

前提条件:
各スレーブの通信速度を得る為のベースドライバの ethtool サポート

balance-alb または 6
適応負荷分散: IPV4 通信の為の balance-tlb と受信負荷分散 (rlb) 
を含み、特別なスイッチのサポートを要求しません。受信負荷分散は 
ARP ネゴシエーションにより実現されます。bonding ドライバはローカ
ルシステムによって送信された ARP 応答の送信を出口で遮り、bond 内
のスレーブの1つの単独のハードウェアアドレスで (ARP 応答の)送信
元ハードウェアアドレスを上書きします。これにより、このサーバへの
異なる通信相手が異なるハードウェアアドレスを使うようになります。


まだファイルサーバのパフォーマンス向上の余地あり?? [他パフォーマンス改善]

各種ベンチマークを取ってきましたが、
ローカルのディスクアクセスが

Sequential Write: 210 MB/sec くらい
Sequential Read: 240 MB/sec くらい

という結果に対して、

ネットワーク越しのディスクアクセスが

Sequential Write: 70~90 MB/sec くらい
Sequential Read: 85~110 MB/sec くらい

ですので、もうちょっとパフォーマンス向上の余地はあるのでは?
と思う次第なのです。

ネットワークが1000Mbbsですので、125MB/secです。
これで頭打ちになっている感があります。

そこで。

Boding

NICを複数束ねて、冗長化と負荷分散に備える方法です。

しかーし、これには、スイッチングハブがポートトランキング
対応している必要があります。

ですが、ものは試しです(^ ^;)

早速ですが、コマンドが足りないので、追加します。
ifenslaveなるbondデバイスにNICを登録するコマンドが入っていません。

# apt-get install ifenslave

次に設定。

# vi /etc/modprobe.d/bonding
と新たに、ファイルを作り、下記の設定を書き込みます。

options bonding mode=0 miimon=100

さらに、

#vi /etc/modules

で、

loop
lp

となっているところに、

bonding

を追記します。

あとはbondインターフェースの定義を行うだけです。

# vi /etc/network/interfaces

--
auto eth1
iface eth1 inet static

address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
--

などとなっている箇所を

--
auto bond0
iface bond0 inet static

address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
slaves eth1 eth2
--

こんな感じに書き換えます。

# ifconfig -a

で、eth2が認識されていることを確認します。

そして、再起動します。

これでOKです♪

ifconfigすると、bondインターフェースに続き、eth1,eth2インターフェースが
表示されます。



ところで、モジュールだけ再読み込みするってできないのかしら??
少し調べてみましたが、わかりませんでした。。


そういえば、この、eth1とかeth2とかってなんか気持ち悪いですね。
数字が1から始まっているあたり。。
・・しらべてみると、このファイルで定義されているようです。

/etc/udev/rules.d/70-persistent-net.rule

ここのNAME="eth1"を書き換えるといいみたいです。
早速書き換えます。二度手間ですが、/etc/network/interfacesも再度書き換え。

そして、再起動。

よかった(*^_^*)ちゃんと書き換わっていました[揺れるハート]

さて、これでベンチマークしてみます。

結果はまた次回。

そういえば、単体ベンチマークやっていなかったです。CG-HDC4EU3500 [CG-HDC4EU3500]

ネットワーク越しのベンチマークはやっていたのですが、
あまり興味がなかったのか、
CG-HDC4EU3500+HDS722020ALA330×4本 でRAID10構成とした際の
ローカルでの読み書きのベンチマークをやっていなかったので、ちょっと
やってみます♪

まずはbonnei++で。

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
ss               4G   515  98 222622  44 94591  24  1934  94 240480  27 201.8   4
Latency             21513us     258ms     450ms   23564us   66941us    2159ms
Version  1.96       ------Sequential Create------ --------Random Create--------
ss                  -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 13549  25 254904  99 54590  71 41479  75 310027  98 54502  71
Latency              5360us    1344us     835us     287us      77us      51us

⇒ Sequential Write: 222.622 MB/sec
⇒ Sequential Read: 240.480 MB/sec

ということでしょうか。

なんとなく怪しいので、ddコマンドでも確認してみます。

■dd if=$DISK of=/dev/null bs=$BS count=$COUNT iflag=direct
$BS,$COUNTを変えて、Readスピード測定
10回測定平均
Sequential Read (Block size:4KBytes) 23.18 MB/sec
Sequential Read (Block size:16KBytes) 74.65 MB/sec
Sequential Read (Block size:64KBytes) 160.26 MB/sec
Sequential Read (Block size:256KBytes) 233.38 MB/sec
Sequential Read (Block size:1024KBytes) 246.55 MB/sec

■dd if=/dev/zero of=$DIR/writetest_${BS}_$i bs=$BS count=$COUNT oflag=direct
$BS,$COUNTを変えて、Writeスピード測定
10回測定平均
Sequential Write (Block size:4KBytes) 9.13 MB/sec
Sequential Write (Block size:16KBytes) 40.06 MB/sec
Sequential Write (Block size:64KBytes) 125.36 MB/sec
Sequential Write (Block size:256KBytes) 198.75 MB/sec
Sequential Write (Block size:1024KBytes) 208.98 MB/sec

# $DISK,$DIRはそれぞれ、ターゲットのパーティションディレクトリを指定します。

bonnie++でも、ddでもだいたい同じですか。

ちなみに、bonnie++の1.03系は適切なオプションをつけて実行しないと
キャッシュが効いて数値が大きく出るので注意が必要です[あせあせ(飛び散る汗)]



何度もやってるとさすがに疲れてきたので、スクリプト書きました。
見よう見まねで、しかも、かなーりテキトーに書きましたので、参考程度に。。
ながーいです[たらーっ(汗)]

もっとスマートに書けるんだろうなぁ(^^;)



------------ddコマンドでベンチマークするスクリプト ここから

#!/bin/bash
# HDD Benchmark Test 
# ver. 0.01
# Copyright (R) nao
#

# 文字列から小数へ変換する関数の定義
text2float()
{
# 整数部分と小数部分に分解
INT_TXT=`echo "$1" | cut -d'.' -f1` # 整数部分のテキスト
FLO_TXT=`echo "$1" | cut -d'.' -f2` # 小数部分のテキスト

# 初期化
M=0 # 小数桁数
INT=0 # 整数部分
FLO=0 # 小数部分
NUM=0 # 浮動小数点数化した$1

# INT_TXTからINTを生成
INT=`expr $INT_TXT + 0`

# FLO_TXTからFLOを生成
while :
do
# FLO_TXTの一文字目を取得
FIRST_TXT=`echo "${FLO_TXT}" | cut -c1`
# FIRST_TXTが""でない場合を小数化
if [ "$FIRST_TXT" = "" ]; then
break
else
FIRST=`expr $FIRST_TXT + 0`
FLO=`expr $FLO \* 10 + $FIRST`
M=`expr $M + 1`
FLO_TXT=`echo "${FLO_TXT}" | cut -c2-`
fi
done

while :
do
if [ $M -eq 0 ]; then
break
else
FLO=`echo "scale=6; ${FLO} / 10" | bc`
M=`expr $M - 1`
fi
done

NUM=`echo "scale=6; ${INT} + ${FLO}" | bc`
echo $NUM
}


# 読み取りベンチマークを実行する関数の定義
rbench()
{
# 一時ファイルの初期化
cat /dev/null >"${DIR}/HDDBench_Tmp.txt"

# 読み書き速度の初期化
# 読み書き速度のN回和の初期化
SUM=0

# N1回のテスト実行
for i in `seq 1 $N1`
do
echo -n "="
RESULT=`dd if=$DISK of=/dev/null bs=$BS count=$COUNT iflag=direct 2>&1`
echo "$RESULT" >"$DIR/HDDBench_Tmp.txt" # 値取得用一時ファイルへ書き込み
echo "$RESULT" >>"$DIR/HDDBench_Tmp2.txt" # デバッグ用一時ファイルへ書き込み
VOL=`awk '(NR == 3){ print $1 }' $DIR/HDDBench_Tmp.txt` # 読み書き量(テキスト)
TIME=`awk '(NR == 3){ print $6 }' $DIR/HDDBench_Tmp.txt` # 読み書き時間(テキスト)
VOL=`expr $VOL + 0` # 読み書き量(数値)
TIME=`text2float $TIME` # 読み書き時間(数値)
SPEED=`echo "$VOL / $TIME" | bc` # 読み書き速度
echo "$SPEED" >>"$DIR/HDDBench_Tmp2.txt" # デバッグ用一時ファイルへ書き込み
SUM=`expr $SUM + $SPEED` # 読み書き速度のN回和
sleep 5
echo -n "+"
done

echo -n "  Done.      "

# 平均の読み書き速度の計算
SPEED=`expr $SUM / $N1`

# 適切な単位の計算への置き換え
if [ $SPEED -ge 1000000 ]; then
SPEED=`echo "scale=2; $SPEED / 1000000" |  bc`
SPEED=`echo "$SPEED" MB/sec`
elif [ $SPEED -lt 1000000 -a $SPEED -ge 1000 ]; then
SPEED=`echo "scale=2; $SPEED / 1000" | bc`
SPEED=`echo "$SPEED" KB/sec`
else
SPEED=`echo "$SPEED" B/sec`
fi
echo  $SPEED
}



# 書き込みベンチマークを実行する関数の定義
wbench()
{
# 一時ファイルの初期化
cat /dev/null >"${DIR}/HDDBench_Tmp.txt"

# 読み書き速度の初期化
SPEED=0
# 読み書き速度のN回和の初期化
SUM=0

# N1回のテスト実行
for i in `seq 1 $N1`
do
echo -n "="
RESULT=`dd if=/dev/zero of=$DIR/writetest_${BS}_$i bs=$BS count=$COUNT oflag=direct 2>&1`
echo "$RESULT" >"$DIR/HDDBench_Tmp.txt" # 値取得用一時ファイルへ書き込み
echo "$RESULT" >>"$DIR/HDDBench_Tmp2.txt" # デバッグ用一時ファイルへ書き込み
VOL=`awk '(NR == 3){ print $1 }' $DIR/HDDBench_Tmp.txt` # 読み書き量(テキスト)
TIME=`awk '(NR == 3){ print $6 }' $DIR/HDDBench_Tmp.txt` # 読み書き時間(テキスト)
VOL=`expr $VOL + 0` # 読み書き量(数値)
TIME=`text2float $TIME` # 読み書き時間(数値)
SPEED=`echo "$VOL / $TIME" | bc` # 読み書き速度
echo "$SPEED" >>"$DIR/HDDBench_Tmp2.txt" # デバッグ用一時ファイルへ書き込み
SUM=`expr $SUM + $SPEED` # 読み書き速度のN回和
sleep 5
echo -n "+"
done

echo -n "  Done.      "

# 平均の読み書き速度の計算
SPEED=`expr $SUM / $N1`

# 適切な単位の計算への置き換え
if [ $SPEED -ge 1000000 ]; then
SPEED=`echo "scale=2; $SPEED / 1000000" |  bc`
SPEED=`echo "$SPEED" MB/sec`
elif [ $SPEED -lt 1000000 -a $SPEED -ge 1000 ]; then
SPEED=`echo "scale=2; $SPEED / 1000" | bc`
SPEED=`echo "$SPEED" KB/sec`
else
SPEED=`echo "$SPEED" B/sec`
fi
echo  $SPEED
}



################ ベンチマーク処理の前処理 #################

# 実行オプションの取得
while getopts vn:p:d: opt
do
case $opt in
"n" ) N1=$OPTARG;; # ベンチマークで平均をとる実行回数
"p" ) DISK=$OPTARG;; # ターゲットパーティション 例 /dev/sda1
"d" ) DIR=$OPTARG;; # ターゲットディレクトリ 例 /st1/nao/tmp
"v" ) V=1;; # デバッグモード:一時ファイルを消さない
* ) echo "Usage: $hb [-v] [-n VALUE] [-t partition] [-d directory]" 1>&2
exit 1 ;;
esac
done

# オプション未指定の場合
if [ -z $N1 ]; then
N1=5
fi

if [ -z $DISK ]; then
DISK=/dev/sda1
fi

if [ -z $DIR ]; then
DIR=/tmp
fi


# 古い一時ファイルの削除
if [ -e $DIR/writetest* ]; then
rm -rf $DIR/writetest*
fi

# 一時ファイルの作成
touch "$DIR/HDDBench_Tmp2.txt"

# 一時ファイルの初期化
cat /dev/null >"$DIR/HDDBench_Tmp.txt"
cat /dev/null >"$DIR/HDDBench_Tmp2.txt"

# ベンチマークテスト結果ファイルの作成
touch "$DIR/HDDBench_TestResult.txt"




################ ベンチマークシーケンス #################
echo $'\n'
echo Starting HDD Bench Mark Test ver. 0.01
echo Start : `date`

echo HDD Bench Mark Test ver. 0.01 >"$DIR/HDDBench_TestResult.txt"
echo `date` $'\n' >>"$DIR/HDDBench_TestResult.txt"



###### 読み取りテスト
# ブロックサイズと読み書き回数の定義

SET=("4K" "25000" "16K" "6250" "64K" "1563" "256K" "3907" "1024K" "977")

for i in 0 2 4 6 8

do
BS=${SET[$i]}
COUNT=${SET[$i+1]}

# 画面への表示
echo $'\n'
echo Testing Sequential Read \(Block size:${BS}Bytes\)
rbench

# ベンチマークテスト結果ファイルへの保存
echo Sequential Read \(Block size:${BS}Bytes\) $SPEED >>"$DIR/HDDBench_TestResult.txt"
done



###### 書き込みテスト

for i in 0 2 4 6 8

do
BS=${SET[$i]}
COUNT=${SET[$i+1]}

# 画面への表示
echo $'\n'
echo Testing Sequential Write \(Block size:${BS}Bytes\)
wbench

# ベンチマークテスト結果ファイルへの保存
echo Sequential Write \(Block size:${BS}Bytes\) $SPEED >>"$DIR/HDDBench_TestResult.txt"
done


#################################



# すべての作業終了表示
echo $'\n' 
echo "All Bench Mark Test Finished."
echo Finished : `date`
echo $'\n' 

# デバッグモードでない場合は一時ファイルを消さない
if [ "$V" = "1" ]; then
exit 0
fi

# 一時ファイルの削除
rm -rf $DIR/HDDBench_Tmp.txt*
rm -rf $DIR/HDDBench_Tmp2.txt*
rm -rf $DIR/writetest*

exit 0

------------ここまで

ddコマンドを調べていると、oflag/iflagでsync,directの指定している箇所が
よくわかりませんでしたが、比較的まともな値のでるdirectの方を使っています。
syncにすると何かがキャッシュされているのか、3GB/secとかはじき出しちゃいます[たらーっ(汗)]
syncの意味よくわかりません。。

このスクリプトを適当なファイル名bench.shとかで保存して
chmod 755とかして実行権限を与えてると使えます。
あ、保存した時の改行コードに注意して下さい。LFで。
あと、シェルスクリプトで小数計算するためのbcが必要です。
# apt-get install bc
してください。
Write Testのために2.3GBほどのディスクスペースが必要です。

使い方は、こんな感じです。

$./bench.sh -n 10 -p /dev/sda1 -d /st1/nao/tmp

とするとブロックサイズを4KB,16KB,64KB,256KB,1024KBで100MBまたは
1GBぶん読み書きを、

-p フラグで指定したパーティションの
-d フラグで指定したディレクトリで
-n フラグで指定した回数実施し、その平均を計算して、
-d フラグで指定したディレクトリに
HDDBench_TestResult.txt というファイル名で実行結果を保存します。

これを使って何が起こっても知りません(^ ^;)



「という項目がすでに存在するため、操作を完了できません。」問題 [Mac]

とりあえず、CG-HDC4EU3500でRAIDも構築でき、ubuntuサーバー
つなげて、netatalkを使ってファイル共有ができるようになりましたので、
iMacにこぴっておいたバックアップファイルをドラッグアンドドロップな
方法で元に戻します。。

が。

戻りません。

「xxxxという項目がすでに存在するため、操作を完了できません。」


と怒られてしまします。

ちょっと調べてみますと、ちょくちょくいらっしゃるようです。
このような現象にあわれている方。

Snow Leopardの不具合のような気がしますが、具体的な解決方法が
見あたりません。

そこで、Macのターミナルからコマンドラインで試してみます。

# rsync -a ./(コピーしたいディレクトリ名) /Volumes/nao/(コピーしたい先)

なんだかわかりませんが、元のディレクトリサイズの半分くらいになって、
どうやらコピー失敗です。

# cp -aR ./(コピーしたいディレクトリ名) /Volumes/nao/(コピーしたい先)

結果。

あら。

ちゃんとコピーできました[るんるん]

よかった、よかった。

RAID5とRAID10によるベンチマークテストの結果 [CG-HDC4EU3500]

前回の続きで、テスト結果です。

ものはこちら。




RAID5の場合
Disk Test 89.00
Sequential 52.82
Uncached Write 22.95 14.09 MB/sec [4K blocks]
Uncached Write 150.70 85.27 MB/sec [256K blocks]
Uncached Read 50.57 14.80 MB/sec [4K blocks]
Uncached Read 174.15 87.52 MB/sec [256K blocks]
Random 282.56
Uncached Write 131.22 13.89 MB/sec [4K blocks]
Uncached Write 257.65 82.48 MB/sec [256K blocks]
Uncached Read 1960.48 13.89 MB/sec [4K blocks]
Uncached Read 466.39 86.54 MB/sec [256K blocks]

RAID10の場合
Disk Test 89.62
Sequential 53.23
Uncached Write 22.50 13.81 MB/sec [4K blocks]
Uncached Write 149.38 84.52 MB/sec [256K blocks]
Uncached Read 54.74 16.02 MB/sec [4K blocks]
Uncached Read 174.33 87.62 MB/sec [256K blocks]
Random 283.24
Uncached Write 131.59 13.93 MB/sec [4K blocks]
Uncached Write 256.68 82.17 MB/sec [256K blocks]
Uncached Read 1985.08 14.07 MB/sec [4K blocks]
Uncached Read 470.91 87.38 MB/sec [256K blocks]

と、まぁ、正直あまり変わらない結果でした(^^;)

一応他の、ベンチマークツールでの結果も掲載しておきます。

AJA System Test
RAID5の場合
スクリーンショット(2010-02-14 1.06.10).png
RAID10の場合
スクリーンショット(2010-02-14 2.47.25).png

QuickBench
RAID5の場合
スクリーンショット(2010-02-14 1.07.38).png
RAID10の場合
スクリーンショット(2010-02-14 2.47.35).png

ただし、複数回テストを行っているうちに、RAID5の方にややパフォーマンスの
低下の傾向がみられました。
10〜20%程度なので誤差の範囲とも考えられますが、一方でRAID10においては、
今回のテストのなかではほとんど見られませんでした。

HDDに対する耐障害性の面から、これからRAID10で運用にはいることにします〜[ぴかぴか(新しい)]
ちなみに、iMac↓のローカルHDDより速いです(^^;)
フクザツな気持ちです。。

APPLE iMac 27インチ 3.06GHz 1.0TB MB952J/A

APPLE iMac 27インチ 3.06GHz 1.0TB MB952J/A

  • 出版社/メーカー: アップル
  • メディア: エレクトロニクス

# このCG-HDC4EU3500自体が故障する可能性も十分にありえますので、
# さらにデータのバックアップをとっておきますが。。。


ちなみに、ヨドバシカメラさんで買いましたが、Amazonの方が5000円くらい安い[あせあせ(飛び散る汗)]
う〜ん。失敗したなー[たらーっ(汗)]
最近よくある、Amazonの方が安かった、っていうパターンです。。



RAID5 と RAID10 でパフォーマンス比較 [CG-HDC4EU3500]

おおざっぱな構成としては

iMac】--【ファイルサーバ】--【DAS】

こんな感じです。


ここで、DASは


Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

  • 出版社/メーカー: コレガ
  • メディア: エレクトロニクス
こちらで、PCやサーバにeSATA/USBで接続するストレージです。



iMac⇔ファイルサーバ間はいちおう1000Base-Tのイーサネット接続です。
ファイルサーバ⇔DAS間はeSATA接続です。
ファイルサーバ側の口はオンボードのeSATAコネクタに接続されています。
# 詳細は以前のブログにて。

ファイル転送のプロトコルはAFPです。(by netatalk2.0.5)


DASはCG-HDC4EU3500を用いています。
ハードディスクHDS722020ALA330を4本入れて、RAID5または10で
運用しようというもくろみです♪

CG-HDC4EU3500のRAID10は

一般論として、RAID5の方がパリティ計算の分だけRAID10(=1+0)より
遅くなるといわれているようです。

いちおうベンチマークテストしておきます。

ベンチマークにつかうソフトウェアも少しばかり、進歩しました。
というか、見つけてきただけですが。。(^^;)


以前から使っているXbench(無償です)

スクリーンショット(2010-02-14 4.10.54).png

ちょっと前に見つけた、AJA System Test(無償です)

スクリーンショット(2010-02-14 4.15.27).png

ところがこれらですと、Windowsからのベンチマークテストが
できないので、Mac版だけでなく、Windows版もあるのがこちら
Intech Software社のQuickBenchです。($24.95)

スクリーンショット(2010-02-14 4.24.50).png

3つを比較してみましたが、どれを用いてもほぼ同じ結果が得られますので、
簡易的なベンチマークテストとしては、Xbenchの結果を用いることにします♪

結果は次回[揺れるハート]


コレガのDAS CG-HDC4EU3500 をLinuxで認識させましょう [CG-HDC4EU3500]

ものはこちらで、


Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

  • 出版社/メーカー: コレガ
  • メディア: エレクトロニクス


2TBのディスクを4本入れましたので、

RAID5構成では、使える容量が6TB
RAID10構成では、使える容量が4TB

となります。

# ちなみに、CG-HDC4EU3500 の設定などは、説明書の通りです。
# 難しくありませんが、「背面のRAID設定ボタン」は長押ししましょう。(笑)


いずれも2TBを超えますので、fdiskではパーティションを作れません。

そこで、partedを使って、パーティションを作成します。

# parted /dev/sda

GNU Parted 1.8.8.1.159-1e0e
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print                                                            
Error: /dev/sda: unrecognised disk label 

おっと、なにか怒られています。
ラベルを書き込みましょう。

(parted) mklabel gpt                                                      
(parted) print                                                            
Model: ATA eSATA-2 External (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags


これでOKです♪

(parted) mkpart                                                           
Partition name?  []?     ←空欄でOK                                                     
File system type?  [ext2]?   ←空欄でOK                                              
Start? 0                                                                  
End? 4001GB                                                               
(parted) print                                                            
Model: ATA eSATA-2 External (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  4001GB  4001GB

(parted) quit 

これだけです[ぴかぴか(新しい)]

つぎはext4でフォーマットします。

# mkfs.ext4 -m 1 /dev/sda1

mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244187136 inodes, 976732283 blocks
9767322 blocks (1.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
29808 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


ちなみに、「-m 1」というオプションは、スーパーユーザー用にリザーブする
領域サイズの指定を行うオプションです。
デフォルトでは5%になっており、4TBの5%って200GBです。
な、なにする用ですか(^^;)?


によれば、断片化を防ぐ効能もあるとか。。
う〜ん、それでも1%にしておきましょう。


あとはマウントするだけです (^_^)

その際、UUIDが必要となります。
「vol_id」なるコマンドもあるようですが、どうも覚えられません。
が、

/dev/disk/by-uuid
 
に認識済みのディスクのUUIDが格納されていますので、いつもここを参照します。

# ls -la /dev/disk/by-uuid
lrwxrwxrwx 1 root root   9 2010-02-14 01:12 0e142fd4-c6c4-43b9-8520-91adeb1cc432 -> ../../md1
lrwxrwxrwx 1 root root  10 2010-02-14 01:50 be4eabea-9f3c-4f7e-8119-08afee3eacd6 -> ../../sda1
lrwxrwxrwx 1 root root   9 2010-02-14 01:12 c18eb71f-5c65-4eea-829d-34678875ec36 -> ../../md0

リンク先までわかり、便利です。

#vi /etc/fstab


UUID=be4eabea-9f3c-4f7e-8119-08afee3eacd6  /st1  ext4  relatime  0  0

を追記します。

これでマウントしましょう〜♪



ubuntu9.10 に webminをいれてみる [Linux コマンド・設定 Memo]

最近のディストリビューションはどこでなんの設定が
なされているか昔とさっぱり違い戸惑うこともあるので、
webminとかいれてみたりします。

さっそく、

入れてみます、
# dpkg -i webmin_1.500_all.deb 
(Reading database ... 47896 files and directories currently installed.)
Preparing to replace webmin 1.500 (using webmin_1-1.500_all.deb) ...
Unpacking replacement webmin ...
dpkg: dependency problems prevent configuration of webmin:
 webmin depends on libnet-ssleay-perl; however:
  Package libnet-ssleay-perl is not installed.
 webmin depends on libauthen-pam-perl; however:
  Package libauthen-pam-perl is not installed.
 webmin depends on libio-pty-perl; however:
  Package libio-pty-perl is not installed.
 webmin depends on libmd5-perl; however:
  Package libmd5-perl is not installed.
dpkg: error processing webmin (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 webmin

いろいろ足りないといわれましたので、
# apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  binutils-static
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libauthen-pam-perl libio-pty-perl libmd5-perl libnet-ssleay-perl
The following NEW packages will be installed:
  libauthen-pam-perl libio-pty-perl libmd5-perl libnet-ssleay-perl
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 286kB of archives.
After this operation, 1,380kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://jp.archive.ubuntu.com karmic/universe libnet-ssleay-perl 1.35-2ubuntu1 [204kB]
Get:2 http://jp.archive.ubuntu.com karmic/universe libauthen-pam-perl 0.16-1.1 [33.0kB]
Get:3 http://jp.archive.ubuntu.com karmic/main libio-pty-perl 1:1.07-2 [42.5kB]
Get:4 http://jp.archive.ubuntu.com karmic/universe libmd5-perl 2.03-1 [5,680B]
Fetched 286kB in 0s (839kB/s)      
Selecting previously deselected package libnet-ssleay-perl.
(Reading database ... 47896 files and directories currently installed.)
Unpacking libnet-ssleay-perl (from .../libnet-ssleay-perl_1.35-2ubuntu1_i386.deb) ...
Selecting previously deselected package libauthen-pam-perl.
Unpacking libauthen-pam-perl (from .../libauthen-pam-perl_0.16-1.1_i386.deb) ...
Selecting previously deselected package libio-pty-perl.
Unpacking libio-pty-perl (from .../libio-pty-perl_1%3a1.07-2_i386.deb) ...
Selecting previously deselected package libmd5-perl.
Unpacking libmd5-perl (from .../libmd5-perl_2.03-1_all.deb) ...
Processing triggers for man-db ...
Setting up libnet-ssleay-perl (1.35-2ubuntu1) ...
Setting up libauthen-pam-perl (0.16-1.1) ...
Setting up libio-pty-perl (1:1.07-2) ...
Setting up libmd5-perl (2.03-1) ...
Setting up webmin (1.500) ...
Webmin install complete. You can now login to https://ss:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.


これで無事アクセスできました♪

ubuntu へ netatalk 2.0.5 インストールの巻 [Netatalk]

以前構築したファイルサーバーのAFPのデーモンの動きが気になって、
netatalkを2.0.5にアップグレードしてあげよう!というところで、
ハマってしまい(^^;)AFPでうまくつながらなくなってしまいました。
(後になってわかったことですが、2.0.5をubuntuではなく、debianの
リポジトリから持ってきたのがダメだったようです。。)
それで、しかたなく、改めてファイルサーバを構築する羽目に・・・トホホです。
また試行錯誤の連続です。


以前のもコメントしましたが、USBメモリでのRAID1構築ができる
という条件からubuntu9.04server版を用います。

試しに、ubuntu9.10server版で試してみましたが、grub2のインストール
エラーが出てダメでした。
最初は、/ のファイルシステムにext4を選んでインストールしていたのですが、
ダメで、ext3で再度チャレンジしましたがこちらもダメですね。
# 他、Fedora12などもやはりだめでした。途中でコケます。

というころで、ubuntu9.04serveをUSBメモリRAID1構成でインストールします。
netatalk2.0.5をインストールするために、もろもろライブラリをアップデート
するためにも9.04から9.10へバージョンを上げます。


インストール後、まず行うことは、9.04を最新版にすることです。

# apt-get update
# apt-get upgrade

こちらが終了したところで、

# apt-get install update-manager-core
# do-release-upgrade

こちらの呪文で、9.04から9.10にバージョンアップできます♪

そして、こちらから、netatalk2.0.5をダウンロードします。

たとえば、こんな感じで、

早速、
# dpkg -i netatalk_2.0.5-3_i386.deb 

Selecting previously deselected package netatalk.
(Reading database ... 31488 files and directories currently installed.)
Unpacking netatalk (from netatalk_2.0.5-3_i386.deb) ...
dpkg: dependency problems prevent configuration of netatalk:
 netatalk depends on libcrack2 (>= 2.8.12); however:
  Package libcrack2 is not installed.
 netatalk depends on libdb4.8; however:
  Package libdb4.8 is not installed.
dpkg: error processing netatalk (--install):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db ...
Errors were encountered while processing:
 netatalk

・・・と、 libcrack2、libdb4.8がないよん、と。
では、ということで。。呪文を。

# apt-get install -f

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  wcatalan cracklib-runtime binutils-static dictionaries-common libcrack2
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  cracklib-runtime dictionaries-common libcrack2 wcatalan
Suggested packages:
  ispell emacsen-common jed-extra
Recommended packages:
  wordlist
The following packages will be REMOVED:
  netatalk
The following NEW packages will be installed:
  cracklib-runtime dictionaries-common libcrack2 wcatalan
0 upgraded, 4 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 2,038kB of archives.
After this operation, 6,812kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://jp.archive.ubuntu.com karmic/main libcrack2 2.8.13-10 [182kB]
Get:2 http://jp.archive.ubuntu.com karmic/main cracklib-runtime 2.8.13-10 [25.8kB]
Get:3 http://jp.archive.ubuntu.com karmic/main dictionaries-common 1.2.1ubuntu1 [287kB]
Get:4 http://jp.archive.ubuntu.com karmic/main wcatalan 0.6-7 [1,544kB]
Fetched 2,038kB in 1s (1,217kB/s)        
Preconfiguring packages ...
(Reading database ... 31648 files and directories currently installed.)
Removing netatalk ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Selecting previously deselected package libcrack2.
(Reading database ... 31500 files and directories currently installed.)
Unpacking libcrack2 (from .../libcrack2_2.8.13-10_i386.deb) ...
Selecting previously deselected package cracklib-runtime.
Unpacking cracklib-runtime (from .../cracklib-runtime_2.8.13-10_i386.deb) ...
Selecting previously deselected package dictionaries-common.
Unpacking dictionaries-common (from .../dictionaries-common_1.2.1ubuntu1_all.deb) ...
Adding `diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common'
Selecting previously deselected package wcatalan.
Unpacking wcatalan (from .../wcatalan_0.6-7_all.deb) ...
Processing triggers for man-db ...
Setting up libcrack2 (2.8.13-10) ...

Setting up cracklib-runtime (2.8.13-10) ...

Setting up dictionaries-common (1.2.1ubuntu1) ...

Setting up wcatalan (0.6-7) ...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

libdb4.8は入らなかったようなので、持ってきます。



そして、再び、

# dpkg -i netatalk_2.0.5-3_i386.deb 

今度は、OKです[ぴかぴか(新しい)]

あと、Zeroconfのための、avahiも入れておきます。

# apt-get install avahi-daemon

あとは、設定。


# vi /etc/netatalk/AppleVolumes.default 

最終行に以下を追記します。
:DEFAULT: maccharset:MAC_JAPANESE volcharset:UTF8 options:usedots,upriv dperm:0700 fperm:0600 cnidscheme:dbd

/dev/shm "ramdisk" allow:nao cnidscheme:dbd
/st1/nao "nao" allow:nao cnidscheme:dbd
~~~~~~~~~~~~~~~環境に合わせて適当に書き換えてネ

# vi /etc/netatalk/afpd.conf

最終行に以下を追記します。

- -tcp -uamlist uams_clrtxt.so,uams_dhx2.so -nosavepassword
- -maccodepage MAC_JAPANESE -unixcodepage UTF8

# vi /etc/default/netatalk 

(デフォルト)
ATALK_MAC_CHARSET='MAC_ROMAN'
ATALK_UNIX_CHARSET='LOCALE'
 ↓
(修正後)
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'

(デフォルト)
ATALKD_RUN=yes
PAPD_RUN=yes
CNID_METAD_RUN=no
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
 ↓
(修正後)
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

こちらのファイルは新規作成。
# vi /etc/avahi/services/afpd.service

以下の内容を書き込みます。

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
</service-group>

設定は以上。


そして、サービスを再起動。

# /etc/init.d/avahi-daemon restart
# /etc/init.d/netatalk restart

あ、つながった、つながった[晴れ]


DASを新調しました [CG-HDC4EU3500]

以前使っていたDASは

センチュリー 裸族の二世帯住宅 CRNS35EU2

センチュリー 裸族の二世帯住宅 CRNS35EU2






こちらですが、いつのまにか、落ちていることがあるので、
こちら↓に新調しました

Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

Corega 4BAY RAID eSATA/USB2.0 SATA3.5インチHDDケース CG-HDC4EU3500

  • 出版社/メーカー: コレガ
  • メディア: エレクトロニクス





4ベイあるということで、HDDはこちら↓
日立GST Deskstar 7K2000(2TB/SATA3G/7200rpm/32MB) HDS722020ALA330

日立GST Deskstar 7K2000(2TB/SATA3G/7200rpm/32MB) HDS722020ALA330

  • 出版社/メーカー: 日立グローバルストレージテクノロジーズ
  • メディア: エレクトロニクス
を4つ調達いたしました。ベンチマークはまた後日 [揺れるハート]


DASを選ぶにあたって、
・てごろな価格
RAID10が構築可能
・そこそこの堅牢性
・そこそこのパフォーマンス
を念頭に置いてしらべてみますと、、上記以外に

mathey Hydra Super-S LCM MHDR-SC800LCM

mathey Hydra Super-S LCM MHDR-SC800LCM

  • 出版社/メーカー: mathey
  • メディア: エレクトロニクス
などもありますが、こちらの機種は上記のコレガと同じRAIDコントローラを
使っているようですので、お値段の面からコレガのDASを買いました♪





偶然だったようです。。netatalkネタ [Netatalk]

以前、こちらのエントリで巣のままのubuntu9.04でCJK対応したnetatalk
使えています〜、と書いたのですが・・・・

ええ、確かに使えていました、しかし、それは何かの偶然だったようで
新たに1台セットアップしようとしたのですが、syslogにはこんなエラーが・・・

Fatal error: mac charset MAC_JAPANESE not supported

これです、これ、以前同エントリでHATさまからコメントを頂いていた
MAC_JAPANESEでエラーは出てませんか?

はい。出るようになりました。HATさま (^^;)

回避するためには、netatalk 2.0.4 以上が必要なようです。
# ubuntu9.04のリポジトリにあるのは2.0.4~beta2-5ubuntu1 です。
# CJK対応はされていなかったようです。。

なんで、以前インストールしたときはこのエラーでなかったのでしょうか。。。


タグ:netatalk

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。