ファイルサーバHDD換装 + CentOS 7導入めも

4年目を迎えるファイルサーバのHDDがヘタったので思い切って4発すべて入れ替えました。
ついでにOSをScientific Linux 6.5からCentOS 7へ変更。


今回使ったHDDはWestern Digital WD40EZRX。
4台でRAID-5にするので大体12TBですね。


ということで、以下作業メモです。

IntelliPark無効化

今回購入したHDDはWD GreenシリーズなのでIntelliParkなるヘッド待避機能がついています。
一定時間アクセスがないとヘッドを待避してくれるらしいのですが、不要なので止めます。


先代の時はwdidle3を使ったけど、今回はOS上から作業ができるidle3-toolsを使ってみました。
http://idle3-tools.sourceforge.net/
ビルドに必要なパッケージを先に入れて、ダウンロードして、makeするだけ。


現状を確認すると、80との値。デフォルトが8秒だそうな。

# ./idle3ctl -g /dev/sda
Idle3 timer set to 80 (0x50)


無効にしたあとシステムを再起動します。

# ./idle3ctl -d /dev/sd[a-d]
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
# ./idle3ctl -g /dev/sda
Idle3 timer is disabled
RAIDアレイ作成

mdadmでソフトウェアRAIDにするので、partedでパーティションを作成します。

# parted /dev/sdb
GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit kib                                                         
(parted) mklabel gpt
(parted) mkpart                                                           
パーティションの名前?  []?                                                
ファイルシステムの種類?  [ext2]?                                          
開始? 2048                                                                
終了? -1                                                                  
警告: 2048kiB から 3907018583kiB (4096 から 7814037165 セクタ)までのパーティションを指定されました。
可能な中で最も近いものは 2048kiB から 3907018567kiB (4096 から 7814037134 セクタ)になります。
それでもかまいませんか?
はい(Y)/Yes/いいえ(N)/No? y                                              
(parted) set 1 raid on
(parted) print
モデル: ATA WDC WD40EZRX-00S (scsi)
ディスク /dev/sdb: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    2097kB  4001GB  4001GB                          raid
 
(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。


あとはRAIDアレイを作ってフォーマットしてfstabに書いてできあがり。

# mdadm --create /dev/md0 -n4 -l5 /dev/sd[a-d]1
# mdadm --detail --scan >> /etc/mdadm.conf
# mkfs.xfs /dev/md0
# vim /etc/fstab
/dev/md0        /storage        xfs     defaults        0 0
samba構築

smb.confで前と変わったところはSMB2に対応したこと。
以下の内容を追記します。

max protocol = SMB2


サービスの設定方法がsystemdになって変わっていました。

# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
# systemctl enable nmb
ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'
ファイアウォール設定

ここもCentOS 7で変更になりました。
smbを追加します。

# firewall-cmd --get-default-zone
public
# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
# firewall-cmd --list-services --zone=public
dhcpv6-client ssh
# firewall-cmd --add-service=samba --zone=public --permanent
success
# firewall-cmd --list-services --zone=public
dhcpv6-client samba ssh
# firewall-cmd --reload
success
SELinux

今回は"ごめんなさい"しません!

# ls -Z
drwxr-xr-x. aose aose unconfined_u:object_r:file_t:s0  nas
# chcon -R -t samba_share_t nas/
# ls -Z
drwxr-xr-x. aose aose unconfined_u:object_r:samba_share_t:s0 nas
データ移行

もう一台端末を用意してUSBメモリからUbuntuを起動、rsyncで一気に移行しました。
rsyncで気にするところはsshを使わないことと、データを圧縮しないことです。
ただでさえハッシュ計算とかでCPUがボトルネックになるので、圧縮したりすると速度が落ちましたす。

おまけ

ネットワークドライブとしてメインPCにマウントしてCrystal Disk Markでベンチとってみました。


ファイルサーバは初代Microserver、やはりパワー不足ですね。
期待したほどの速度は出ませんでしたが、容量アップとディスク交換が目的だったのでよしとします。

-----------------------------------------------------------------------
CrystalDiskMark 3.0.3 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    90.107 MB/s
          Sequential Write :    89.783 MB/s
         Random Read 512KB :    82.796 MB/s
        Random Write 512KB :    65.434 MB/s
    Random Read 4KB (QD=1) :     7.345 MB/s [  1793.3 IOPS]
   Random Write 4KB (QD=1) :     0.055 MB/s [    13.5 IOPS]
   Random Read 4KB (QD=32) :     8.298 MB/s [  2025.8 IOPS]
  Random Write 4KB (QD=32) :     0.054 MB/s [    13.2 IOPS]

  Test : 1000 MB [M: 1.1% (119.2/11175.7 GB)] (x5)
  Date : 2014/10/11 0:52:14
    OS : Windows 8.1  [6.3 Build 9600] (x64)
追記(2015/01/24)

/tmpをRAMディスクにするには今までfstabを編集していましたが、systemdでは違う方法がありました。
(※SoftwareDesign 2015/2月号で知りました。)

# systemctl enable tmp.mount
ln -s '/usr/lib/systemd/system/tmp.mount' '/etc/systemd/system/local-fs.target.wants/tmp.mount'


便利!

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        98G  3.9G   95G   4% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.8G   80K  1.8G   1% /dev/shm
tmpfs           1.8G  8.8M  1.8G   1% /run
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
tmpfs           1.8G   16K  1.8G   1% /tmp
/dev/md0         11T  4.8T  6.2T  44% /storage
/dev/sda5       127G   55M  127G   1% /home
/dev/sda1       197M  145M   53M  74% /boot