SSブログ
エステ

du -sh * [Linux コマンド・設定 Memo]

頻繁に使うコマンドはオプションまで覚えていても、
たまに使うコマンドはよく忘れて、調べなきゃっ[あせあせ(飛び散る汗)]ていうこともしばしば。。
そこで、調べたコマンドをメモっておくことに。

du -sh *:今いる場所にあるディレクトリごとの容量を適切な単位で出力

# du -sh *
90M bin
24K games
16M include
136M lib
80K lib32
0 lib64
1.3G local
34M sbin
284M share
78M src



samba でシンボリックリンクをコピーできないにつける薬 [Samba]

Linuxサーバ内のディレクトリをごっそりファイルサーバ内にコピーしておいて、
それを一時的にMacにバックアップすると、それを再度ファイルサーバに戻す時、
sambaではシンボリックリンクのコピーに失敗する。

Mac側では、どうやら、エイリアスと認識されているようなのですが、
そのシンボリックリンクをコピー仕様とすると「エラーコード 36」に遭遇する。

しばらく対処不能だったのですが・・・

smb.confで

unix extensions = no

とすることで、いちおうコピーできるようになった模様。
ちなみに、netatalkではもともとちゃんとコピーできます。

うん、よかった[ぴかぴか(新しい)]



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

化石のnetatalk2.1beta2 からnetatalk2.1へ移行しました [るんるん]

beta2からの追加としては、Time Machineによるバックアップサイズの
上限値を設定できるようになった模様。

いつもどおりな感じで、アップデートします。


$ tar zxvf netatalk-2.1.tar.gz

$cd netatalk-2.1

$ ./configure --enable-debian --with-bdb=/usr/local/BerkeleyDB.4.8

$ make

# make install

# /etc/init.d/netatalk restart

確認。
$ /usr/local/sbin/afpd -V

afpd 2.1 - 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
    afp_signature.conf: /usr/local/etc/netatalk/afp_signature.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/



beta2の時は、Mac→ファイルサーバへnetatalkで30GBくらい詰まったフォルダを
3,4個コピーしようとすると、途中でMac側のコピーのプロセスが落ちていたのですが、
それがなくなりました。
netatalk2.1beta2のせいではないかもしれませんが、結果よしです [揺れるハート]

ファイルのデータサイズを仕分けてみる [LinuxでSoftware RAID]

RAIDを構成する際の参考として、chunk sizeをいろいろと変えて
ベンチマークを取ってみましたが、まぁ、あまり変わらなかった訳です[たらーっ(汗)]

そもそもchunk sizeとはLinuxのSoftware RAIDで一度に取り扱う
データブロックのサイズのことを表します。

ファイルシステムとしてのブロックサイズとはまた別です。

最近はext4とかでフォーマットするとデフォルトでは4096Byteが
ブロックサイズとして使われるようです。
# tune2fs -l /dev/md0 などで調べられます。


ですので、chunk sizeは4KB以上で設定し、読み書きスピードや
無駄があまり出ないサイズに設定するのがよさそうです。

とすると、一体、普段ファイルサーバに保存しているデータのサイズは
いかほどに?という疑問がわいてきますので、調べてみました。


今、ファイルサーバは再構築中なので全てのデータはiMac上に
待避中です。
なので、OSXのターミナルからファイルサーバで保存している
ファイルの一覧を取得し、エクセルでちゃちゃっとヒストグラムを
作ってみます。


$ find ./Desktop/St1 -type f -exec ls -la {} \; >> volume.txt

対象とするフォルダ ./Desktop/St1
にあるファイルだけを抽出して、
volume.txtに書き出します。


ls- la コマンドで出力される情報がそのまま出てきますので、
ファイルサイズ以外の情報を削除して、エクセルのfrequency()関数で、
頻度を抽出します。

あまり細かく分けても仕方ないので、わりとおおざっぱです。

ls- la の結果はbyte単位で出力されているので、

4000
8000
16000
32000
64000
128000
256000
512000
1024000
1024000000
1.024E+12
1.024E+15

この12段階に分けます。

結果、こんな感じ。

data-histgram.png
横軸:ファイルサイズグループ(x)
縦軸:個数


ほとんどのデータが16KB~64KBに集まっていることがわかります。
ですので、ハードディスクの無駄使いを抑えるためには、
chunk size を16KBに設定するのがよさそうですが、一方で、
16KBだと1chunk? に入りきらないので、2~4chunk使うことに
なり、読み書きの効率が悪そうです。

1chunkに納めるためにはchunk sizeを64KBに設定すると、
85%以上のデータが1Chunkに収まることになり、効率は
良さそうです。

ところで、chunk size = 64KB はデフォルト値です。

やっぱり、「デフォルト最適説」がまた検証されました[晴れ]



chunk size と layout を変えてRAID10 を構成してみましたが。。。 [LinuxでSoftware RAID]

前回の反省から、chunk size と layout を変えてRAID10 を構成して
ベンチマークをとればよさそうだということがわかったので、
やってみましたが、結果はどれもそうかわらないという結論です。

ディスクはHGST HDS722020ALA330 なので一本2TBもあるので
先頭50GBを切り出して、50GBx4/2=100GBのRAID10を構成して
ベンチマークしたのですが、100GBくらいだとlayoutの差がそんなに
でないということでしょうか。
HGST HDS722020ALA330は1プラッタ400GBなので、同一
プラッタの前半1/4でしか動かない訳ですし。。

まぁ、いちおう、結果をまとめて見ました。
今回は、最初から計画的に、スクリプトを書いて実行したので
取り間違いもなく、スムースでした[たらーっ(汗)]

順に、Write Speed, Read Speed, その合計(比較のため)


chunk-layout_write.png

chunk-layout_read.png

chunk-layout_sum.png


どれもそんなに差がないですが、比較的よいのは

chunk size =64
Layout = near2

って、デフォルトじゃないですか〜

やはり、デフォルト最適説 [るんるん]




ベンチマーク時のマシンスペック
ファイルサーバ側
CPU:Intel E3200
HDD:HGST HDS722020ALA330

ホスト側
iMac MB952J/A

AFP(by netatalk 2.1beta2)で、AJA system testを使って計測。
Linux software RAIDを使って、RAIDを構築。

chunk size=1024, layout=f2 でRAID10を構成してみる [LinuxでSoftware RAID]

数パターンに分けたRAID10の構成方法によるベンチマークの結果

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=1024 --layout=f2 -v /dev/sd[abcd]1

# mke2fs -t ext4 -m 0 -b 4096 -E stride=256,stripe-width=512 /dev/md0


とした場合ローカルディスクアクセスのパフォーマンスが比較的よかったので、
これで構成しました。

これで、ローカルディスクアクセスのパフォーマンスを測定してみると。。

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -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
fs               4G 72909  96 202308  37 101063  25 68007  97 402652  48 162.9   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   407   3 +++++ +++   544   3   353   2 +++++ +++   540   3



次に、ファイルサーバとしてネットワークアクセスでのパフォーマンス測定を行ってみると。。。

--chunk=1024 --layout=f2-E stride=256,stripe-width=512(2010-04-19 0.17.20).png
Write : 77.9MB/sec
Read : 61.1MB/sec

と以前の全てデフォルト構成から比べて、パフォーマンスが大幅に低下。
特にReadは100MB/secからですから、40%も低下したことになります。

ローカルディスクアクセスとネットワークディスクアクセスは比例しませんね。。



ベンチマーク時のマシンスペック
ファイルサーバ側
CPU:Intel E3200
HDD:HGST HDS722020ALA330

ホスト側
iMac MB952J/A

AFP(by netatalk 2.1beta2)で、AJA system testを使って計測。
Linux software RAIDを使って、RAIDを構築。

あとで stride stripe-width を変更する [LinuxでSoftware RAID]

mke2fs のフォーマットオプション -E で指定する

stride
stripe-width

ですが、実は、フォーマット後にも変更可能です。

tune2fs -E stride=n,stripe-width=m /dev/mdx


ということは、chunk sizeとlayoutを数パターンに分けて、
ベンチマークを取ればよかったわけです。

タグ:stripe size

RAIDを再構築できない病につける薬 [LinuxでSoftware RAID]

以前も書きましたが、RAIDを再構築する際には、おおざっぱに

アンマウント
RAID停止
スーパーブロックの消去
再度RAID作成

というステップを踏みますが、おそらく、スーパーブロックの消去で失敗
したのか、再度RAIDを作成しようとした際に

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=1024 --layout=f2 -v /dev/sd[abcd]1
mdadm: Cannot open /dev/sda1: Device or resource busy
mdadm: create aborted

と、こんな具合に失敗します。

で、なにをしてもだいたいこんな具合に失敗します。。

原因は不明ですが、

# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md_d0 : inactive sda1[0](S)
      1953514432 blocks
       
unused devices: <none>

おそらく、このあたり。


# mdadm -E /dev/sda1
/dev/sda1:
          Magic : a92b4efc
        Version : 00.90.00
           UUID : 22a9ece6:ae35f69a:86b54b3f:1d0c4af0 (local to host fs)
  Creation Time : Sat Apr 17 20:26:56 2010
     Raid Level : raid10
  Used Dev Size : 1953514432 (1863.02 GiB 2000.40 GB)
     Array Size : 3907028864 (3726.03 GiB 4000.80 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0

    Update Time : Sun Apr 18 06:22:24 2010
          State : active
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 128dccc8 - correct
         Events : 14

         Layout : near=2, far=1
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     0       8        1        0      active sync   /dev/sda1

   0     0       8        1        0      active sync   /dev/sda1
   1     1       8       17        1      active sync   /dev/sdb1
   2     2       8       33        2      active sync   /dev/sdc1
   3     3       8       49        3      active sync   /dev/sdd1

スーパーブロックの残骸や/proc/mdstatの残骸などの影響で、
createに失敗するようです。

正す方法はただ一つ。

mdadm の削除と再インストール 

これが確実です。

# apt-get --reinstall install mdadm

では/proc/mdstat が残っているため、ダメです。

ですので、

# apt-get --purge remove mdadm

ここで、再起動してから、確認してみます。

# cat /proc/mdstat 
Personalities : 
unused devices: <none>

mdadmをインストールします。

# apt-get install mdadm

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  mdadm
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/239kB of archives.
After this operation, 676kB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously deselected package mdadm.
(Reading database ... 68219 files and directories currently installed.)
Unpacking mdadm (from .../mdadm_2.6.7.1-1ubuntu13_amd64.deb) ...
Processing triggers for man-db ...
Setting up mdadm (2.6.7.1-1ubuntu13) ...
Generating array device nodes... /var/lib/dpkg/info/mdadm.postinst: 170: /dev/MAKEDEV: not found
failed.
Generating mdadm.conf... done.
 Removing any system startup links for /etc/init.d/mdadm-raid ...
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: mdadm start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (S)
update-rc.d: warning: mdadm stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (0 6)
 * Starting MD monitoring service mdadm --monitor
   ...done.

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.31-20-server


これでOKです[るんるん]

いちおうスーパーブロックを消去します。

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=1024 --layout=f2 -v /dev/sd[abcd]1
mdadm: /dev/sda1 appears to contain an ext2fs file system
    size=58593280K  mtime=Sun Apr 18 05:55:53 2010
mdadm: /dev/sda1 appears to be part of a raid array:
    level=raid10 devices=4 ctime=Sat Apr 17 20:26:56 2010
mdadm: size set to 1953513472K
Continue creating array? yes
mdadm: array /dev/md0 started.

createが待ちきれないので、すぐに止めます。
# mdadm --misc --stop /dev/md0
mdadm: stopped /dev/md0

残骸がないことを確認します。
# cat /proc/mdstat
Personalities : [raid10] 
unused devices: <none>

スーパーブロックをきれいにします。
# mdadm --misc --zero-superblock /dev/sd[abcd]1

完了です〜

このあと、createしてあげてください〜


RAID10 のchunk sizeを変えてみる [LinuxでSoftware RAID]

前回は layoutオプションを変えましたが、今回はchunk sizeを変えてベンチマークしてみます。

chunk size = 64,128,256,512,1024 の5パターンです。
また、mke2fs の -E オプションを指定しない場合と、数値を指定した場合も比較してみます。


コマンド的には

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=64 --layout=f2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=128 --layout=f2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=256 --layout=f2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=512 --layout=f2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=1024 --layout=f2 -v /dev/sd[abcd]1

に対して、標準のフォーマットとしては、

# mke2fs -t ext4 -m 0 /dev/md0

各、チャンクサイズに対しては、

# mke2fs -t ext4 -m 0 -b 4096 -E stride=16,stripe-width=32 /dev/md0
# mke2fs -t ext4 -m 0 -b 4096 -E stride=32,stripe-width=64 /dev/md0
# mke2fs -t ext4 -m 0 -b 4096 -E stride=64,stripe-width=128 /dev/md0
# mke2fs -t ext4 -m 0 -b 4096 -E stride=128,stripe-width=256 /dev/md0
# mke2fs -t ext4 -m 0 -b 4096 -E stride=256,stripe-width=512 /dev/md0

ここで、
stride = chunk / block
stripe-width = stride x (n/2) (RAID10でn台のHDDをRAID10に利用する場合)
となります。

以前のブログでは man mke2fs を読み間違えていて、この設定を間違えてベンチマークしていました。特に赤線あたりを間違えてとっていたので、表から一部抜け落ちてしまいました。。

てきとーにやってちゃダメですね[たらーっ(汗)]


結果は、

chunk-write.png

chunk-read.png

と、Writeはほとんど変わることなく、Readの性能がchunk size に比例しそうな感じです。



ベンチマーク時のマシンスペック
CPU:Intel E3200
HDD:HGST HDS722020ALA330

Linux software RAIDを使って、RAIDを構築。

RAID10 のlayoutオプションを変えてみる [LinuxでSoftware RAID]

RAID10の構築オプション layout を変えてみて、どの程度パフォーマンスが変化するか見てみます。

ただし、4TBで構築すると、createだけでも1回5時間以上掛かるので、30GBほどパーティションを切り出して、試しました。
(その影響がfarとかであるかも。)

near=2

far=2

offset=2

この3パターンで試します。

コマンド的には、この3パターンです。

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=64 --layout=n2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=64 --layout=f2 -v /dev/sd[abcd]1

# mdadm --create /dev/md0 --raid-devices=4 --level=raid10 --chunk=64 --layout=o2 -v /dev/sd[abcd]1

で、bonnie++の結果。

                        mke2fs option
layout-write.png

layout-read.png

一般的に書き込みは (速)near > offset > far(遅)と言われているようなのですが、
ちょっと微妙な結果です[たらーっ(汗)] 

次回、far=2として、chunk size などを変えて、ベンチマークしてみます。


ベンチマーク時のマシンスペック
CPU:Intel E3200
HDD:HGST HDS722020ALA330

Linux software RAIDを使って、RAIDを構築。


(追記)strideとstripe-width の計算を間違えています。。[あせあせ(飛び散る汗)]

タグ:RAID構築

RAID10 を再構築してみる [LinuxでSoftware RAID]

勘違いから始まったわけですが。。。ファイルサーバのRAID10を再構築してみます。


勘違いといいますのも、、

dmesg を眺めていると

[    7.130124] raid10: raid set md0 active with 4 out of 4 devices
[    7.130151] md0: detected capacity change from 0 to 4000797556736
[    7.131405]  md0:
[    7.133764] md: raid6 personality registered for level 6
[    7.133767] md: raid5 personality registered for level 5
[    7.133769] md: raid4 personality registered for level 4
[    7.134502]  unknown partition table


unknown とか言われているのをみつけて、さっそく


# fdisk /dev/sda

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


The number of cylinders for this disk is set to 243201.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      243202  1953514583+  ee  GPT


# 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                                                            
Model: ATA Hitachi HDS72202 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

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



実はこのままでもよかったのですが、、ファイルサーバのバックアップを
とっておいて、System typeを変更します。

# fdisk /dev/sda

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


The number of cylinders for this disk is set to 243201.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): print

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      243202  1953514583+  ee  GPT

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L 

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): print

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      243202  1953514583+  fd  Linux raid autodetect

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.


な、なにかワーニングが。。


/dev/sdb,sdc,sdd も同様に。

そして、再起動すると、確かにdmesgの

[    7.134502]  unknown partition table

は消えましたが。。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                                                            
Warning: /dev/sda contains GPT signatures, indicating that it has a GPT table.  However, it does not have a valid
fake msdos partition table, as it should.  Perhaps it was corrupted -- possibly by a program that doesn't understand
GPT partition tables.  Or perhaps you deleted the GPT table, and are now using an msdos partition table.  Is this a
GPT partition table?
Yes/No? 

こっちでもワーニングがでることに。


結果、MBRにしか対応していない、fdiskでsystem typeを変更したので、GPT table がおかしくなってしまったようです。

そして、GPTはmdから正しく認識されない。
まぁ、いっか。ちゃんと動いていたし、もう一度partedでGPT tableを作り直します。


上のつづき

(parted) mklabel
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? yes                                                               
New disk label type?  [gpt]? gpt                                          
(parted) print                                                            
Model: ATA Hitachi HDS72202 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart                                                           
Partition name?  []? [Enter]
File system type?  [ext2]? [Enter]
Start? 0
End? 2000GB
(parted) print
Model: ATA Hitachi HDS72202 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

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

(parted) set 1 raid on
(parted) print
Model: ATA Hitachi HDS72202 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

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

(parted) quit
Information: You may need to update /etc/fstab.  


これをsdb,sdc,sdd でも繰り返します。

これで再起動するとはやり現れます。

[    7.145004]  md0: unknown partition table

そして、マウントします。


# bonnie++ -u root -b -d /st1/nao/tmp

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -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
fs               4G 70546  93 206169  34 71823  19 56805  89 225009  27 182.7   0




ここまで乗りかかったので、ついでに、RAIDの構築オプションを変えて
構築し直してみます。


構築し直すためには、

アンマウント
RAID停止
スーパーブロックの消去
RAID作成

のステップを踏みます。


# umount /st1

# mdadm --misc --stop /dev/md0

# mdadm --misc --zero-superblock /dev/sd[abcd]1

# mdadm --create /dev/md0 -v --raid-devices=4 --level=raid10 --chunk=128 /dev/sd[abcd]1

デフォルトでは、chunk size = 64kbですが、128kb にしてみました。

resync完了後、フォーマットします。

chunk size = 128kb にしたので、stride = 128, stripe-width = 512 に指定します。

# mke2fs -t ext4 -m 0 -E stride=128,stripe-width=512 /dev/md0

mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244195328 inodes, 976757184 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
29809 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 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


自動的にblock size = 4096 でフォーマットされました。

これでマウントして、

# bonnie++ -u root -b -d /st1/nao

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -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
fs               4G 68201  97 206894  36 71065  18 57637  85 147445  19 169.3   0



と、Readが明らかに低下しました。

そこで、stride = 128, stripe-width = 512 を指定しないでフォーマットし直してみます。


# mke2fs -t ext4 -m 0 /dev/md0
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244195328 inodes, 976757184 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
29809 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 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


そして、再度。。
# bonnie++ -u root -b -d /st1/nao

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -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
fs               4G 73175  97 204599  37 71022  19 60744  88 163908  22 168.0   0


・・と若干Read向上。

やっぱりデフォルト値が最適ですか。。
最近よくハマるパターンです。


あれこれやるより「デフォルト値最適説」


ということで、chunk size = 64 で再度、RAID構築しなおします。

ほんとうは、

layout option も試したかったんだけどな。。



ベンチマーク時のマシンスペック
CPU:Intel E3200
HDD:HGST HDS722020ALA330

Linux software RAIDを使って、RAIDを構築。

HDL2-G をベンチマークしてみる [IO DATA HDL2-G]


I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

  • 出版社/メーカー: アイ・オー・データ
  • メディア: エレクトロニクス


まぁ、HDL2-G(↑)が遅いのはわかっているのですが、どのくらい遅いか記録まで。

スクリーンショット(2010-04-14 0.52.11).png
afpですが、

Write 4MB/sec
Read 8.9MB/sec

交換して入れたHDDは
Seagate 3.5インチ内蔵HDD 1TB 7200rpm S-ATAII 32MB ST31000528AS

Seagate 3.5インチ内蔵HDD 1TB 7200rpm S-ATAII 32MB ST31000528AS

  • 出版社/メーカー: Seagate
  • メディア: エレクトロニクス
ですから、ローカルでW/R ともにローカルで100MB/secくらいはでますから、
ひどいですね。。。

ためしに、、

# hdparm -tT /dev/hda

/dev/hda:
 Timing cached reads:   138 MB in  2.02 seconds =  68.32 MB/sec
 Timing buffered disk reads:   60 MB in  3.00 seconds =  20.00 MB/sec

う〜ん、MPUが遅いからですね〜



# cat /proc/cpuinfo

Processor       : FA526id(wb) rev 1 (v4l)
BogoMIPS        : 230.19
Features        : swp half 
CPU implementer : 0x66
CPU architecture: 4
CPU variant     : 0x0
CPU part        : 0x526
CPU revision    : 1
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format B
Cache format    : Harvard
I size          : 16384
I assoc         : 2
I line length   : 16
I sets          : 512
D size          : 8192
D assoc         : 2
D line length   : 16
D sets          : 256

Hardware        : GeminiA
Revision        : 0000
Serial          : 0000000000000000

詳細はこちら↓

ちなみに、ES34069にのせているCPUはE3200で、

# cat /proc/cpuinfo 

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Celeron(R) CPU        E3200  @ 2.40GHz
stepping : 10
cpu MHz : 1200.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips : 4800.85
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Celeron(R) CPU        E3200  @ 2.40GHz
stepping : 10
cpu MHz : 1200.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips : 4800.26
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual


と、bogomipsでFA526はE3200の 1/40 くらいですから、遅いのもうなずけます。

ES34069-BK-180 ですが割とファンがうるさいので。。 [Server hardware]


ファンを交換してみようかと。
あと、SATAケーブルが硬く、ケース内でちょっと邪魔なので
もう少し柔らかいものに交換。

もともファンはこちら。
IMG_1209.JPG
70x70x20mm

型番はこう読むらしい

そして、スペックは
MG(1)7012LB-(2)20
Maximum Air Flow 21.33CFM
Speed 2,500rpm
Noise
27.6dB


そして入手したのはこちら

アイネックス OMEGA TYPHOON 70mm 超静音タイプ CFZ-70S

アイネックス OMEGA TYPHOON 70mm 超静音タイプ CFZ-70S

  • 出版社/メーカー: AINEX
  • メディア: エレクトロニクス
スペックは全体的に低くなるのでOKなのですが、、
厚さが25mm


IMG_1216.JPG
ぎりぎり収まったのですが、、左側が若干干渉する。。

そこで、左のファンを外して、とりあえず1個で動かしてみることに。。


そうすると。。。
スクリーンショット(2010-04-15 9.34.55).png
HDDの温度が47℃まで上昇。。

というわけで、あっさり、元のファンに戻すことに。

スクリーンショット(2010-04-16 1.22.53).png
はい。戻りました。。


SATAケーブルも変更。
IMG_1190.jpg

元はこんな感じ。


柔らかいSATAケーブル50cmを4本購入。
IMG_1218.jpg

これに差し替え。
ストッパーは片側だけでよかったかも。

IMG_1224.jpg

ちょっと長すぎたかも[たらーっ(汗)]
ちゃんと計ってなかったので。
もとのケーブルは30cmと40cmそれぞれ2本ずつでした。

実際は、25cmと30cmそれぞれ2本ずつでもよさそう。


少しだけすっきりしました。

AVAHI でFinderからsambaも検出させる [Server software]

Finderからnetatalkを検出させるのに、avahiをつかっていましたが、
同様に。

netatalk用
/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-afp</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>


samba用
/etc/avahi/services/smb.service

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


 <name replace-wildcards="yes">%h-afp</name>
<name replace-wildcards="yes">%h-cifs</name>

ここを変えてあげるとFinderから見てわかりやすい。
sambaかnetatalk、こんがらがることもありません。

samba 3.5.2 を試してみる。 [Samba]


netatalkを2.1beta2に上げたので、ついでにsambaも3.5.2に上げておきます。

といってもこれまた、3.5.1の時と同じです。



$ tar zxvf ./samba-3.5.2.tar.gz

$ cd ./samba-3.5.2/source3

$ ./autogen.sh

$ ./configure

$ make

# make install

# /etc/init.d/samba restart

いちおうバージョンの確認。

# /usr/local/samba/bin/smbstatus

Samba version 3.5.2
PID     Username      Group         Machine                        
-------------------------------------------------------------------

Service      pid     machine       Connected at
-------------------------------------------------------

No locked files


はい、OKです[るんるん]

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


netatalk 2.1beta1を前回入れていますので、同様と言いますか、
追加でなにか入れることは無いので、難しいことはないでしょう。



# tar zxvf netatalk-2.1beta2.tar.gz

# cd netatalk-2.1beta2

# ./configure --enable-debian --with-bdb=/usr/local/BerkeleyDB.4.8
ここは環境に応じててきとうに。

# make

# make install
設定ファイルなどは上書きされないので、特にバックアップする必要はなかった
みたいです。

以上で完了。


configure, make に失敗するなら、必要なパッケージを適当についか。


netatalkを再起動。

# /etc/init.d/netatalk restart


いちおう。
# /usr/local/sbin/afpd -V

afpd 2.1beta2 - 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
    afp_signature.conf: /usr/local/etc/netatalk/afp_signature.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/


ちゃんと動いているようです[るんるん]

ベンチマークとかしてみましたが、特に変化はありません。


ES34069-BK-180 の巨大ACアダプタがうるさい [Server hardware]

先日乗り換えたこちらの筐体ですが、

ES34069-BK-180 Mini-DTX/Mini-ITX Micro Tower Chassis

ES34069-BK-180 Mini-DTX/Mini-ITX Micro Tower Chassis

  • 出版社/メーカー: Chenbro
  • メディア: 
電源内蔵タイプではなく、ACアダプタからの電源供給なのですが、
付属の巨大ACアダプタがうるさいのです。

ACアダプタがうるさいなんて経験は初めてなのですが[たらーっ(汗)]
なんて言うんでしょう、高周波のノイズでしょうか。
音は大きくないのですが、かなり高い音で耳障りです。

そこで、同タイプのACアダプタを探すことにしました。

ただ、、なかなかないんですね。。

秋葉原あたりで一日探し回ればどこかにあるのかもしれませんが、
19V 9.5A 180W 4Pin-Din 仕様のACアダプタは国内の販売サイト
では見あたらず、仕方なくUSのサイトから取り寄せることに。

こちら。

ちょっと高いなぁ。。

(追記)
後日、販売サイトから在庫切れの連絡が。
在庫切れじゃなくて、入手できないんでしょうが[むかっ(怒り)]


HDL2-G でsshログイン出来るようにする [IO DATA HDL2-G]

前回は故障したこちら↓
I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

こちらに仕立て上げました。

次は、いろいろいぢるために、sshでログイン出来るようにします。

簡単です。


前回と同じく、HDDを取り出して、Linuxマシンに
タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25

タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25

  • 出版社/メーカー: タイムリー
  • メディア: エレクトロニクス
これなんかで、接続し、マウントし、読み書きできるようにします。

# mount -t ext3 /dev/sdc2 /media/usdc2

(sdc2, /media/usdc2 などは適宜読み替えてください。)

では、早速。

/etcをながめているとわかりますが、けっこういろいろ標準で入っています。
sshもそのひとつ。

標準ではランレベル2で起動されるようなので、rc2.dディレクトリのファイルを
編集します。

# mv /media/usdc2/etc/rc2.d/K20ssh /media/usdc2/etc/rc2.d/S20ssh


まずはrootでログインしたいので、パスワードファイルを編集します。

# vi /media/usdc2/etc/shadow

: で隔てられた1ブロック目がユーザー名です。
2ブロック目が暗号化されたパスワードですが、HDL2-Gにログイン出来る
ユーザーのパスワードをコピーしてrootのパスワードブロックにコピーします。

HDD2台について、同じ処理を行います。
これでOK。

ログイン出来ました[るんるん]


HDL2-G1.0を2.0にする。つまりハードディスクを交換して増量します。 [IO DATA HDL2-G]

ターゲットはこちら

I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

I-O DATA ミラーリング/ストライピング対応 LAN接続ハードディスク 500GB×2 HDL2-G1.0

  • 出版社/メーカー: アイ・オー・データ
  • メディア: エレクトロニクス
で、どういうことかといいますと、

HDL2-G1.0は500GBのHDD x 2基で、合計1.0TB なわけで、
それを1.0TBのHDD x 2基で、合計2.0TB にしようというわけです。

以前ブログに書きましたが、夏を乗り切れず、おそらく熱で
HDD1基が故障して以来、ず〜っと、放置していました。。

それを復活させて、ちょっといぢってみようというわけです。


そのまず復活編


ちょうど、1TBのHDDが2基余っているので、まずは、500GBの
HDDを1TBのHDDへアップグレードしようと思います。

やり方としては、故障していない、正常に起動する方の500GBの
HDDと新しい1TBのHDDでRAID1を構築して、(そうすると、
1TBのHDDの方に500GB分のRAIDアレイがつくられます。)
データ用の領域を+500GBリサイズして、起動する1TBのHDDを
つくり、500GBのHDDを抜いてさらに新しい1TBのHDDを入れて
合計2TBですが、1TBx2のRAID1を構築します。



さて、それでは早速始めます。

正常に起動する500GBのHDDと新しい1TBのHDDをHDL2-Gに入れて
RAIDのリビルドをしてもらいます。。

これで、500GBのHDDの内容が新しい1TBのHDDにコピーされました。

この1TBのHDDをLinuxマシンにつなぎます。

こんなやつで。。
タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25

タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25

  • 出版社/メーカー: タイムリー
  • メディア: エレクトロニクス
# ls /dev
すると、sdcが新たに加わったことがわかるので、

# fdisk /dev/sdc
The number of cylinders for this disk is set to 121601.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:1) software 
that runs at boot time (e.g., old versions of LILO)2) booting 
and partitioning software from other OSs 
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p
Disk /dev/sdc: 1000.2 GB, 1000204883968 bytes255 heads, 
63 sectors/track, 121601 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa0618433
Device Boot Start End Blocks Id System
/dev/sdc1 2 40 313267+ 83 Linux
/dev/sdc2 41 91 409657+ 83 Linux
/dev/sdc3 92 353 2104515 82 Linux swap / Solaris
/dev/sdc4 354 60788 485444137+ 5 Extended
/dev/sdc5 354 379 208844+ 83 Linux
/dev/sdc6 380 60788 485235292 83 Linux

/dev/sdc1,2,5,6を順に適当にext2でマウントしてみると、、

どうやら、
/dev/sdc1 は/boot
/dev/sdc2 は/
/dev/sdc5 はなんかごにょごにょ
/dev/sdc6 はマウントエラーで不明

fstabをみてみると、RAID1のmdデバイスとしてext3でマウント
しているようですが、sdc6関連の記述はありませんでした。。

容量的に考えて、sdc6がデータ保存用の領域と考えられますので、
この領域をリサイズすればいいと簡単に考えていたのですが、、
まず、リサイズができなくてしばらく頓挫[たらーっ(汗)]

partedでリサイズしようとしたのですが、

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

(parted) print                                                            

No Implementation: Partition 1 isn't aligned to cylinder boundaries.  
This is still unsupported.

と怒られてしまします。。


しばらく頓挫。


今回は、新しい1TBのHDDと元のHDDを両方をHDL2-Gに入れて、
クローンを作ったのですが、気分を変えて、ddでクローンを作ることに。

ということで、元のHDDもLinuxマシンにつないで、ddします。

# dd if=/dev/sdd of=/dev/sdc

dd: reading `/dev/sdd': Input/output error
6564832+0 records in
6564832+0 records out
3361193984 bytes (3.4 GB) copied, 1097.07 s, 3.1 MB/s

sddが元のHDD
sdcが新しいHDD
なんかエラーが出ていますが、気にしません[るんるん]

両方のHDDをマウントして、目視でファイルなど確認してみましたが、
一見、ちゃんとコピーできていそうです。

ここで、試しに、partedすると。。。

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

つづけて

(parted) print  
Model: ST310005 28AS (scsi)
Disk /dev/sdc: 1000GBSector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags 
1 8225kB 329MB 321MB primary ext3 
2 329MB 749MB 419MB primary ext3 
3 749MB 2904MB 2155MB primary linux-swap(v1) 
4 2904MB 500GB 497GB extended 
5 2904MB 3117MB 214MB logical ext3 
6 3117MB 500GB 497GB logical xfs

な、なんと、エラーがでないではありませんか!
どのおまじない[ぴかぴか(新しい)]が効いたのかわかりませんが。。

そして、、sdc6はxfsだったのですね[たらーっ(汗)]
どうりでマウントできなかったわけです。

まずsdc4の拡張領域を拡張します。

(parted) resize 4 2904MB 1000GB
Error: Error informing the kernel about modifications to partition /dev/sdc5 
-- Device or resource busy. 
This meansLinux won't know about any changes you made to /dev/sdc5 until you reboot -- 
so you shouldn't mount it or use it inany way before rebooting.
Ignore/Cancel? Ignore

なにか言われますが、Ignoreと答えます。


確認します。

(parted) print  
Model: ST310005 28AS (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 8225kB 329MB 321MB primary ext3
2 329MB 749MB 419MB primary ext3
3 749MB 2904MB 2155MB primary linux-swap(v1) 
4 2904MB 1000GB 997GB extended 
5 2904MB 3117MB 214MB logical ext3 
6 3117MB 500GB 497GB logical xfs

OK広がりました。


では、sdc5はそのままでsdc6を広げます。

(parted) resize 6 3117MB 1000GB  
No Implementation: Support for opening xfs file systems is not implemented yet.

おっと!xfsは未対応でした。。

ということで、ここで終了し、fdiskで修正します。

(parted) quit  
Information: You may need to update /etc/fstab.



# fdisk /dev/sdc
The number of cylinders for this disk is set to 121601.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:1) software
that runs at boot time (e.g., old versions of LILO)2) booting
and partitioning software from other OSs  
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdc: 1000.2 GB, 1000204883968 bytes
255 heads, 63 sectors/track, 121601 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0006d20c  
Device Boot Start End Blocks Id System
/dev/sdc1 2 40 313267+ 83 Linux
/dev/sdc2 41 91 409657+ 83 Linux
/dev/sdc3 92 353 2104515 82 Linux swap 
/ Solaris/dev/sdc4 354 121601 973924560 5 Extended
/dev/sdc5 354 379 208844+ 83 Linux
/dev/sdc6 380 60788 485235292 83 Linux


Command (m for help): d
Partition number (1-6): 6

Command (m for help): n
First cylinder (380-121601, default 380): [Enter]
Using default value 380
Last cylinder, +cylinders or +size{K,M,G} (380-121601, default 121601): [Enter]
Using default value 121601


Command (m for help): p

Disk /dev/sdc: 1000.2 GB, 1000204883968 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0006d20c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               2          40      313267+  83  Linux
/dev/sdc2              41          91      409657+  83  Linux
/dev/sdc3              92         353     2104515   82  Linux swap / Solaris
/dev/sdc4             354      121601   973924560    5  Extended
/dev/sdc5             354         379      208844+  83  Linux
/dev/sdc6             380      121601   973715683+  83  Linux

OKですが。
では、書き込みます。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

partedで再度確認。

# parted /dev/sdc
GNU Parted 1.8.8.1.159-1e0eUsing /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print  
Model: ST310005 28AS (scsi)Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags 
1 8225kB 329MB 321MB primary ext3 
2 329MB 749MB 419MB primary ext3 
3 749MB 2904MB 2155MB primary linux-swap(v1) 
4 2904MB 1000GB 997GB extended 
5 2904MB 3117MB 214MB logical ext3 
6 3117MB 1000GB 997GB logical

あら、 はやりファイルシステムからxfsはとれてしまいましたね。。

では、sdc6をxfsでフォーマットします。

# mkfs.xfs /dev/sdc6
meta-data=/dev/sdc6              isize=256    agcount=4, agsize=60857230 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=243428920, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=32768, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0


ここまできたらもうあと一息!

ここまでで作ってきた1TBのHDDともう一つ用意した新しいHDD両方を
HDL2-Gに入れます。左右どちらでもかまいません。

そして、起動。

。。。するはずです。

赤いランプが点滅していますが、立ち上がるので、ブラウザからアクセスします。
IPアドレスやパスワードは変わっていないので、従来通りのアクセスで。

こんな感じ↓で、ディスクサイズなどが取得できていません。
2010-04-11 8.24.15.png

ここでRAID1フォーマットを行います。

すぐにおわり。。。
2010-04-11 8.47.06.png

結果、この通り、ディスクサイズが表示されるようになり、
すぐにミラーリングの再構築が始まります[揺れるハート]

あとは再構築が終わるのをまつのみ。

おつかれさまでした〜[るんるん]



修正:改行コードがあちこちで消えていたので、手動修正(2010/8/10)

ZABBIXでHDD温度を監視する [ZABBIX]

ZABBIXで監視するシリーズ?です。

今回はHDDの温度を監視します。

HDDの温度はsmartctlでもいいですが、情報を切り出すのが面倒なので、
hddtempを用います。

# apt-get install hddtemp

インストール時のキャプチャを取り忘れていたのでわからないのですが、
デフォルトではrootしかコマンド実行できないので、修正します。

# dpkg-reconfigure hddtemp

スクリーンショット(2010-04-10 21.12.05).png

肝心のここをYesで。


スクリーンショット(2010-04-10 21.12.26).png

自動的に温度を取得しないので0


スクリーンショット(2010-04-10 21.12.50).png

デーモンとして起動しないので、Noで。


# echo 'UserParameter=HDD.temp[*],/usr/sbin/hddtemp $1|cut -f3 -d":"|cut -b-3' >>  /etc/zabbix/zabbix_agentd.conf


あとは、適当にItemの追加です。
スクリーンショット(2010-04-10 22.40.28).png
ディスクの台数だけ追加します。
ファイルサーバには4台HDDがのっているので、/dev/sda~sddまで追加。

結果、こんなかんじです。
スクリーンショット(2010-04-10 22.42.55).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでRAIDを監視する [ZABBIX]

ソフトウェアRAIDを構成しているサーバのアクティブアレイの数を監視します。

# echo 'UserParameter=raid.active[*],cat /proc/mdstat |grep -A 1 $1 |tail -1 |cut -f1 -d"]" |cut -f2 -d"/"' >> /etc/zabbix/zabbix_agentd.conf

テンプレートを追加し、itemの設定を行います。
スクリーンショット(2010-04-10 19.34.26).png

Description Acrive Software RAID Array
Type ZABBIX agent
Key raid.active[md0]
Type of information Numeric (integer 64bit)


# /etc/init.d/zabbix-agent restart

これでOK

スクリーンショット(2010-04-10 19.08.27).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでMySQLを監視する [ZABBIX]

MySQLの監視には標準のテンプレートが用意されていますので、
基本的にはそのコメントを取り除くだけですが、、

MySQLのインストール時にrootパスワードを設定していますと
監視値の取得に失敗します。

# mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

と、こんな具合に。。

そこで、rootパスワードを解除します。

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8669
Server version: 5.1.37-1ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD FOR root@localhost=PASSWORD('');
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

これでOK

あとは、
# vi /etc/zabbix/zabbix_agentd.conf

UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l
UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":"
UserParameter=mysql.version,mysql -V

これらの前についてる#を取り除きます。

また、テンプレートのkeyが間違えているので、修正します。

スクリーンショット(2010-04-10 18.59.50).png

Item Key(default) Key(modified)
MySQL is alive mysql[ping] mysql.ping
MySQL number of slow queries mysql[slowqueries] mysql.slowqueries
MySQL number of threads mysql[threads] mysql.threads
MySQL queries per second mysql[qps] mysql.qps
MySQL uptime mysql[uptime] mysql.uptime
MySQL version version[mysql] mysql.version

これで、監視できるようになりました。

スクリーンショット(2010-04-10 19.07.51).png




Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXのNETGEAR GS108T 用テンプレートをつくる [ZABBIX]

というのも、標準テンプレートのsnmp v1,snmp v2のテンプレートを
GS108Tに監視に適用しても情報がとれなかったので、テンプレートを
作ってみようと。

そのためには、GS108T で用意されているOIDの一覧が必要です。

というわけで、まず、

# apt-get install snmp
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following NEW packages will be installed:
  snmp
0 upgraded, 1 newly installed, 0 to remove and 11 not upgraded.
Need to get 163kB of archives.
After this operation, 647kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com karmic/main snmp 5.4.1~dfsg-12ubuntu7 [163kB]
Fetched 163kB in 0s (329kB/s)
Selecting previously deselected package snmp.
(Reading database ... 42320 files and directories currently installed.)
Unpacking snmp (from .../snmp_5.4.1~dfsg-12ubuntu7_amd64.deb) ...
Processing triggers for man-db ...
Setting up snmp (5.4.1~dfsg-12ubuntu7) ...


$ snmpwalk -v2c -c public 192.168.1.254 1.3

結果、1200項目近いOIDがはき出されます。
(ここで、192.168.1.254はGS108TのIPアドレス)

そこから、必要な項目を拾います。。。って、正直しんどいなぁ[たらーっ(汗)]

ちょっとショートカットしながら、とりあえず
Port1~8のRX/TX Byte,status と Host name を取得できるようにしてみました。
以下のXMLファイルをZABBIXでインポートすればOK。

--ここから

<?xml version="1.0"?>

<zabbix_export version="1.0" date="09.04.10" time="06.23">

<hosts>

<host name="Template_GS108T">

<useip>0</useip>

<dns></dns>

<ip>0.0.0.0</ip>

<port>10050</port>

<status>3</status>

<groups>

<group>Templates</group>

</groups>

<items>

<item type="4" key="IF-MIB::ifInOctets.1" value_type="1">

<description>Port 1 RX Bytes</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay><delay>30</delay><delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.10.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="IF-MIB::ifOutOctets.1" value_type="1">

<description>Port 1 TX Bytes</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.16.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="IF-MIB::ifOperStatus.1" value_type="1">

<description>Port 1 Status</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.8.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="SNMPv2-MIB::sysDescr.0" value_type="1">

<description>Host name</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

</items>

</host>

</hosts>

</zabbix_export>

--ここまで

とりあえず、こんなかんじになります。
まぁ何てことない状態です。

スクリーンショット(2010-04-10 4.33.38).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXをインストールしてみる [ZABBIX]

前から興味があったZABBIX


を復活させて静音化させた、fiono330
FunTwist ベアーボーン ブラック Fiono330

FunTwist ベアーボーン ブラック Fiono330

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






にインストールしてみます。

ZABBIXとはサーバやネットワーク機器の監視ソフトウェアです。

SNMPを用いるか、対応しているOSであればエージェントソフトウェアを
インストールしデーモンとして稼働しておくことで詳細な稼働情報を自動的に
ZABBIXサーバで収集することが可能です。

【ZABBIXサーバ】→【ZABBIXエージェント in Ubuntuサーバ】

ZABBIXエージェントはアイテムごとに指定した周期で情報を取得し内部に
一時的に保持します。
ZABBIXサーバは指定した周期でZABBIXエージェントから情報を取得し、
指定した期間DBに保持します。
ZABBIXにはWebインターフェースでそれらの情報の表示や、設定などが
可能です。

では、ZABBIXをインストール。
(その前に、てきとうに、Ubuntu9.10をインストールしておきます。)

# apt-get install zabbix-server-mysql
# apt-get install zabbix-frontend-php
# apt-get install zabbix-agent
# echo date.timezone=Asia/Tokyo >> /etc/php5/apache2/php.ini
# echo max_execution_time=300 >> /etc/php5/apache2/php.ini
# chown www-data:www-data /etc/zabbix/dbconfig.php
# chown zabbix:zabbix /etc/zabbix/zabbix_*.conf
# echo zabbix_agent 10050/tcp >> /etc/services
# echo zabbix_trap 10051/tcp >> /etc/services
# /etc/init.d/apache2 restart

# vi /etc/zabbix/zabbix_server.conf

ListenIP=192.168.1.15 ← ZABBIXサーバのIPアドレス

# vi /etc/zabbix/zabbix_agentd.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス
Hostname=ws ← 自らのホストネーム
ListenIP=192.168.1.15 ← 監視したいサーバのIPアドレス:通常は自らのIPアドレス

# vi /etc/zabbix/zabbix_agent.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス


# /etc/init.d/zabbix-server restart
# /etc/init.d/zabbix-agent restart


他の監視したいLinuxサーバ(192.168.1.10)にもzabbix-agentをインストールし、

# vi /etc/zabbix/zabbix_agentd.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス
Hostname=ss ← 自らのホストネーム
ListenIP=192.168.1.10 ← 監視したいサーバのIPアドレス:通常は自らのIPアドレス

# vi /etc/zabbix/zabbix_agent.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス

# /etc/init.d/zabbix-agent restart


そして、ブラウザから

初期ID:Pass=Admin:zabbix でZABBIXのインターフェースにアクセスできます[るんるん]



最初、fiono330へのインストールはUSBメモリに入れていたのですが、
ディスクIOが遅すぎて、Load Averageが常時2以上というような状態が
続いていたので2.5inchのHDDにインストールし直しました、そうすると
Load Averageが0.5程度まで落ちました。。よかった。

fiono330はatom330を搭載し、4コアなので、Load Average 2~3といっても
そこまで負荷が高すぎるわけではないですが、ブラウザからのアクセスが体感的にも
ちょっと遅かったので、HDDの方がいいですね。





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

fiono330 静音化 [Server hardware]

ファイルサーバを CG-HDC4EU3500からES34069-BK-180 へ
移行しましたが、電力が足りなくて、

グリーンハウス SATA/IDE-USB2.0変換アダプタ 2.5インチHD対応 GH-USHD-IDESA

グリーンハウス SATA/IDE-USB2.0変換アダプタ 2.5インチHD対応 GH-USHD-IDESA

  • 出版社/メーカー: グリーンハウス
  • メディア: エレクトロニクス



こういうもをES34069-BK-180ベースのサーバに接続できなくなって
しまいました[たらーっ(汗)]



そこで、昔買ったfiono330を復活させることにしました[るんるん]
FunTwist ベアーボーン ブラック Fiono330

FunTwist ベアーボーン ブラック Fiono330

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





  • ただ。。。fiono330はコンパクトなのですが、音がうるさいのです。
  • ヒートシンクに取り付けられたFANは
IMG_1167.jpg
60x60x15mm

こちらですが、これ自体は比較的静かなFANなのですが、
筐体とFANの間で生じる風切り音が騒音の原因のようです。

そこで。。

対策1)FANをはずす
→NG:熱暴走
    上蓋を外した状態でも熱暴走

対策2)FANをはずして、ダウンクロックする
→NG:熱暴走
    上蓋を外している間はOK
    上蓋を閉じると熱暴走

ダウンクロックはここから↓
IMG_1169.JPG
FSBは533MHz&600MHzとなっており、一見ダウンクロック
できなさそうですが、
System Clock ModeをLinkedに設定することで、
FSBを400MHzに設定することができ、結果、1.6GHzから
1.2GHzにダウンクロックができます。

対策3)FANを小型で風量の少ないものに交換する
→OK:今のところ。。。

交換したFAN@¥1,340 はこちら↓
IMG_1168.jpg
45x45x10mm
およそ風量が半分以下の6.8CFMのFANに交換

交換後はこんな感じ
IMG_1170.jpg
かなり小さくなりました。

上蓋がすこし熱くなりますが、まだ熱暴走には至っていません。
しばらく様子をみることに。。。
夏はしんどいかなぁー[あせあせ(飛び散る汗)]

samba でちゃんと拡張属性を有効にできたかも [Samba]

ながらく、放っておいたのですが、ちょっと気が向いて、
smb.confさわっていたら拡張属性を "正しく" 有効にできたかも[exclamation&amp;question]
いうことで、メモっておきます。

vfs objects = xattr_tdb
から

 vfs objects = streams_xattr

へ変更してから、「エラーコード -36」問題が発生し、

Macからsambaでファイルサーバへのファイルコピーができないで

いたのですが、、

 

ea support = No

から

ea support = Yes

へ変更したところ、「エラーコード -36」が現れず、

ファイルのコピーができるようになりました。

 

Macからコピー後のファイルの拡張属性を確認しても、ちゃんと

拡張属性は保存されていますので、とりあえずよし[るんるん]として、

しばらく、これでようすをみます。



MacOS : 10.6.3(10.6.2から上げたばかりですが、10.6.2だと、どうなっていたのかしら。)

Samba : 3.5.1


smb.conf  -----------


[global]

        dos charset = CP932

        display charset = UTF-8

        netbios name = SS-CIFS

        server string = %h Samba Server

        map to guest = Bad User

        obey pam restrictions = Yes

        pam password change = Yes

        passwd program = /usr/bin/passwd %u

        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

        unix password sync = Yes

        syslog = 0

        log file = /var/log/samba/log.%m

        max log size = 1000

        max xmit = 65535

        domain logons = Yes

        os level = 65

        preferred master = Yes

        dns proxy = No

        wins support = Yes

        panic action = /usr/share/samba/panic-action %d

        admin users = administrator

        create mask = 0754

        directory mask = 0754

        block size = 4096

        delete veto files = Yes

        ea support = Yes

        kernel oplocks = No

        oplocks = No

        level2 oplocks = No

        vfs objects = streams_xattr

 

[nao-cifs]

        path = /st1/nao

        username = nao

        write list = nao

        read only = No

        write cache size = 262144

        hide dot files = No

 -----------------------



ファイルをもどせない。。 [Netatalk]

古いLinuxファイルサーバから新しいLinuxファイルサーバへ
移行するにあたって、一時的に古いファイルサーバのファイル達を
iMacにコピーしておきました。

それを新しいファイルサーバに戻そうとしたとき。。。

スクリーンショット(2010-04-01 2.30.04).png
あら。。

新しいエラーコード出現です。

予期しないエラーが起きたため、操作を完了できません。(エラーコード -50)


でも、全てのファイルに対して出るのではなく、一部のファイルやフォルダを
コピーしようとした時にでるのです。


iMacのターミナルから、確認してみて気づいたのですが、、

$ ls -la
total 32
drwx------@ 12 nao  staff    364  4  1 17:12 .
drwxrwxrwt@  7 root  admin    238  4  1 17:07 ..
-rwx------@  1 nao  staff  15364  4  1 15:04 .DS_Store
drwx------  15 nao  staff    466  4  1 14:55 directoryA
drwxr-xr-x@  7 nao  staff    264  3 30 19:22 directoryB

フォルダのコピーに成功するディレクトリには@がついていて、
失敗するディレクトリには@がついていない。。

そもそもこの@はなんのか??


どうやら拡張属性をもったファイルやディレクトリには@がつくようです。

拡張属性は ls-la の後に@をつけると確認できるようです。


$ ls -la@
total 32
drwx------@ 12 nao  staff    364  4  1 17:34 .
com.apple.FinderInfo   32 
drwxrwxrwt@  7 root  admin    238  4  1 17:07 ..
com.apple.FinderInfo   32 
-rwx------@  1 nao  staff  15364  4  1 15:04 .DS_Store
com.apple.FinderInfo   32 
drwx------  15 nao  staff    466  4  1 14:55 directoryA
drwxr-xr-x@  7 nao  staff    264  3 30 19:22 directoryB
com.apple.FinderInfo   32 


directoryAにはFinderInfoがなく、iMacからファイルサーバへのコピーに失敗します。
directoryBにはFinderInfoがあり、iMacからファイルサーバへのコピーに成功します。


推測ですが、、、

古いファイルサーバからiMacへコピーした時、netatalkとsambaを使いました。
netatalkでコピーしたファイルは拡張属性もコピーされ、sambaでコピーした
ファイルは拡張属性がコピーされなかった。

そして、拡張属性がないファイルのコピーには失敗する。

では、拡張属性をつけられないか??

う〜ん、SetFile -a で拡張属性はつけられそうですが、適切かつ、数万のファイル、
ディレクトリにつけるには。。?


一旦、iMacからMacBookProの共有フォルダへファイルをコピーすれば、あらたに
拡張属性が付加されることを見いだしたので、一旦、MacBookProへファイルを
コピーします。

そのMacBookProからファイルサーバへコピーすればよいのでは??
というわけです。


結果。ほぼ成功です。
たまに、エラーコード -36 が出ることがありましたが、なんとか全てコピーできました。

修正 2010.4.23
上記の推測、間違っていたので修正です。

ファイルサーバのnetatalkのエラーログをチェックするのを忘れていました。
早速チェックすると、

Apr 23 09:29:10.618775 afpd[16348] {filedir.c:304} (E:AFPDaemon): check_name: illegal name: '.AppleDouble'
Apr 23 09:29:10.618817 afpd[16348] {directory.c:733} (I:AFPDaemon): extenddir: illegal path: '.AppleDouble'

こんな具合のエラーが大量にはかれています。

つまり、悪さの原因は

.AppleDouble

このディレクトリでした!

これはnetatalk2.0.x時代の遺物です。

理由がわかったので対処法はこのとおり。。

Macのターミナルから、コピー元のフォルダ(ここでは/Desktop/St1 とします)から
.AppleDouble を完全消去します。

こんな感じで。

$ sudo find ./Desktop/St1 -name ".AppleDouble" -execdir rm -dfr {} \;

find の-deleteオプションでは"."で始まるディレクトリは削除出来ない模様。
なので、-execdirオプションで。

これで、ちゃんとコピーができるようになりました!
 

しかし、iMacからMacBookProへのコピーが遅い。。というかおかしい。
iMacはローカルの読み書きで90MB/sec
MacBookProはSSDで、ローカルの読み書きで100~200MB/sec程度
なのにファイル転送速度が目測で5~10MB/sec程度。。かと思いきや、急に50MB/sec
くらい出たりと、かなりムラがあります。


ES34069-BK-180 でソフトウェアRAIDを構築しました [LinuxでSoftware RAID]

そういえば、購入前に気にしていた、電源容量の問題は、
大丈夫でした。
ぎりぎりといいますか、ちょっと不足していましたが、
なんとか起動し、RAIDも構築できました[るんるん]

RAID10の構築は普通に mdadm を使います。

/dev/sda,adb,adc,addを使って構築します。

まず、各ディスク目一杯に1つパーティションを切ります。

。。。というところで、このブログを書いていた、iMacが落ちたので、
メモっていた詳細は割愛。

IMG_1119.JPG

あー、しょっく[たらーっ(汗)]
たぶん原因は、

I-O DATA Mac用 USB接続 地上デジタル対応TVキャプチャBOX「m2TV」 GV-MACTV

I-O DATA Mac用 USB接続 地上デジタル対応TVキャプチャBOX「m2TV」 GV-MACTV

  • 出版社/メーカー: アイ・オー・データ
  • メディア: エレクトロニクス
これのせい。
よく落ちるので道連れにされたのでしょう。。
全くひどい代物です。

IO DATAの製品でまともなのに当たらないのは偶然?


2TBをぎりぎり超えてるかどうか不明なので、パーティションはpartedで切りました。
2TB以下ならfdiskで切れます。

RAIDを構築してからフォーマットするので、個別のパーティションをフォーマット
する必要はありません。

# mdadm --create /dev/md0 -v --raid-devices=4 --level=raid10 /dev/sd[abcd]1

この呪文で、4つのパーティションでRAID10が構築され、syncが始まります。
寝ている間に終わったのでわかりませんが、5時間くらい掛かった模様です。

man mdadm.conf を見てもよくわからなかったのですが、

# mdadm --examine --scan

ARRAY /dev/md0 level=raid10 num-devices=4 UUID=fa0cdaa4:35dc9145:883fc9c1:0b6673d2

の結果をmdadm.confに書いておけ、とあちこちで言われているので、とりあえず
書いておきます。
あとで詳しく調べます。

構築が終わったら、

# mkfs.ext4 -m 1 /dev/md0

して、フォーマットします。

すべて完了したところで、

# mdadm --detail /dev/md0

/dev/md0:
        Version : 00.90
  Creation Time : Wed Mar 31 06:07:14 2010
     Raid Level : raid10
     Array Size : 3907028864 (3726.03 GiB 4000.80 GB)
  Used Dev Size : 1953514432 (1863.02 GiB 2000.40 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Thu Apr  1 00:15:00 2010
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2, far=1
     Chunk Size : 64K

           UUID : fa0cdaa4:35dc9145:883fc9c1:0b6673d2 (local to host ss)
         Events : 0.18

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
       2       8       33        2      active sync   /dev/sdc1
       3       8       49        3      active sync   /dev/sdd1


OKそうです(^^)

軽くベンチマークをとりましたが、CG-HDC4EU3500でRAID10を
構築したときとほとんど同じパフォーマンスでした。

ちなみに、4基のディスクは
product6213780907.jpg
左上 Disk1  右上 Disk3
左下 Disk2  右下 Disk4
となっています(ディスクの上にある小さい●の数で表しているようです)

これに対して、

左上 sdd 右上 sdc
左下 sdb 右下 sda

と割り当てられています。

ま、これはSATAコネクタの接続を変えればなんとでもなりますが。
デフォルトではこんなところです。


とりあえず、なんとか動くところまできたので、バックアップしておいた
ファイルたちを戻すことにします[揺れるハート]

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