ラベル SSD の投稿を表示しています。 すべての投稿を表示
ラベル SSD の投稿を表示しています。 すべての投稿を表示

2019年12月11日水曜日

CentOS8.0 で /tmp を tmpfs に設定できない

最近の SSD なら気にしなくてもよさそうですが、SSD の消耗対策に /tmp を tmpfs にしようとしたら、CentOS8.0 では次のコマンドが効きませんでした。RHEL7/CentOS7 では、この操作でよかったはずですが。
[root@hoge ~]# df -hT /tmp
ファイルシス   タイプ サイズ  使用  残り 使用% マウント位置
/dev/nvme0n1p6 ext4      40G  9.4G   28G   26% /
[root@hoge ~]# systemctl enable tmp.mount
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.
[root@hoge ~]# rpm -q systemd
systemd-239-13.el8_0.5.x86_64
調べてみると、バグという話しです。RHEL8.1 では既に直っている模様。
https://bugzilla.redhat.com/show_bug.cgi?id=1667065
修正イメージは次の通りです。https://github.com/lnykryn/systemd-rhel/pull/275/
@@ -22,3 +22,7 @@ What=tmpfs
 Where=/tmp
 Type=tmpfs
 Options=mode=1777,strictatime,nosuid,nodev
+
+# Make 'systemctl enable tmp.mount' work:
+[Install]
+WantedBy=local-fs.target
ということなので、systemctl edit で差分を追加すれば、応急処置できます。
[root@hoge ~]# EDITOR=vim systemctl edit tmp.mount
[root@hoge ~]# systemctl cat tmp.mount
# /usr/lib/systemd/system/tmp.mount
#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Temporary Directory (/tmp)
Documentation=man:hier(7)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime,nosuid,nodev

# /etc/systemd/system/tmp.mount.d/override.conf
# Make 'systemctl enable tmp.mount' work:
[Install]
WantedBy=local-fs.target
[root@hoge ~]# systemctl enable tmp.mount
Created symlink /etc/systemd/system/local-fs.target.wants/tmp.mount → /usr/lib/systemd/system/tmp.mount.
[root@hoge ~]#
上記はたいした内容ではないですが、やはり RHEL8.0/CentOS8.0 は、まだまだ こなれていない 印象です。業務用サーバとして使うのなら、やはり RHEL8.2 あたりからではないでしょうかね。

2019年5月31日金曜日

ZFS on Linux 0.8.0 で zpool trim

v0.8.0 で、zpool trim が使えるようになったので、初めて使ってみました。
コマンド自体は TRIM 処理の完了を待たずに即座に終了するようで、その後しばらく iostat で負荷が見えました。ThinkPad W520 にはディスクアクセスを示す LED がついていて、長時間点灯していました。
[root@hoge ~]# uname -a
Linux hoge 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@hoge ~]# rpm -q kmod-zfs
kmod-zfs-0.8.0-1.el7.x86_64
[root@hoge ~]# zpool trim tankW
[root@hoge ~]# iostat -x -m 2
Linux 3.10.0-957.12.2.el7.x86_64 (hoge)  2019年05月31日  _x86_64_ (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.81    0.06    3.20    1.51    0.00   93.42

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda              39.03     8.63   47.95  263.80     2.38   137.59   919.58     0.15    0.48    0.96    0.39   0.18   5.65
sdb              97.99     8.79  112.27  263.45     6.15   137.58   783.44     0.33    0.88    2.02    0.40   0.19   7.02
zd0               0.00     0.00    3.42    0.00     0.06     0.00    37.43     0.00    0.07    0.07    0.00   0.05   0.02
zd16              0.00     0.00    2.30    0.00     0.01     0.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    2.30    0.00     0.01     0.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    2.85    0.00     0.04     0.00    25.68     0.00    0.08    0.08    0.00   0.05   0.01
zd64              0.00     0.00    2.48    0.00     0.02     0.00    14.78     0.00    0.05    0.05    0.00   0.05   0.01
zd80              0.00     0.00    3.35    0.00     0.04     0.00    22.23     0.00    0.07    0.07    0.00   0.05   0.02
dm-0              0.00     0.00    0.35    0.00     0.01     0.00    51.80     0.00    0.20    0.20    0.00   0.07   0.00
dm-1              0.00     0.00    0.35    0.00     0.01     0.00    51.80     0.00    0.15    0.15    0.00   0.12   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.61   12.65    0.00   83.68

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   60.00 2808.50     0.25  1589.70  1135.16     0.58    0.20    0.17    0.20   0.16  45.35
sdb               0.00     0.00   60.00 2817.50     0.24  1590.78  1132.38     0.59    0.20    0.18    0.20   0.16  46.50
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.72   13.69    0.00   82.52

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   51.50 3109.00     0.20  1402.12   908.70     0.62    0.20    0.08    0.20   0.15  48.70
sdb               0.00     0.00   48.50 3096.50     0.19  1402.12   913.18     0.61    0.19    0.07    0.20   0.15  46.90
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.13    0.00    3.85   12.18    0.00   83.85

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  156.00 2428.50     0.86  2251.20  1784.56     0.54    0.21    0.17    0.21   0.17  43.00
sdb               0.00     0.00  146.00 2446.50     0.73  2250.95  1778.77     0.55    0.21    0.18    0.22   0.17  43.90
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    2.47   11.46    0.00   86.07

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     1.50   36.00 2536.00     0.23  1033.82   823.38     0.50    0.20    0.14    0.20   0.18  45.80
sdb               0.00     1.50   36.50 2529.00     0.20  1033.65   825.31     0.49    0.19    0.15    0.19   0.17  44.30
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    4.10   11.22    0.00   84.62

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   93.00 2532.50     0.75  1309.89  1022.36     0.53    0.20    0.23    0.20   0.17  44.15
sdb               0.00     0.00   96.50 2523.50     0.55  1307.29  1022.31     0.49    0.19    0.15    0.19   0.16  41.10
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    2.40   11.79    0.00   85.75

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   38.50 2582.00     0.29  1539.58  1203.46     0.52    0.20    0.23    0.20   0.17  45.80
sdb               0.00     0.00   39.50 2592.50     0.25  1538.75  1197.52     0.53    0.20    0.19    0.20   0.18  46.60
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    2.65   11.16    0.00   86.19

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   30.00 2596.00     0.22   611.86   477.35     0.47    0.18    0.18    0.18   0.17  44.50
sdb               0.00     0.00   32.00 2593.00     0.22   615.56   480.43     0.48    0.18    0.33    0.18   0.17  44.45
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    5.72   12.39    0.00   81.82

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  226.50 2692.50     1.46  1841.68  1293.16     0.60    0.21    0.24    0.20   0.15  42.65
sdb               0.00     0.00  200.50 2699.50     1.42  1841.84  1301.72     0.57    0.20    0.24    0.19   0.14  39.65
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.59   13.36    0.00   82.99

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   41.50 3118.50     0.16  1775.72  1150.95     0.66    0.21    0.25    0.21   0.16  49.00
sdb               0.00     0.00   38.00 3115.00     0.15  1765.88  1147.11     0.64    0.20    0.28    0.20   0.15  47.70
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.47   11.48    0.00   84.98

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   75.50 2533.00     0.54  2058.24  1616.40     0.53    0.20    0.23    0.20   0.17  44.20
sdb               0.00     0.00   83.50 2522.00     0.48  2045.01  1607.81     0.53    0.20    0.20    0.20   0.17  43.80
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    2.66   11.28    0.00   85.99

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.50     0.00   52.00 2509.00     0.29  1027.77   822.12     0.49    0.19    0.12    0.19   0.18  45.20
sdb               0.00     0.00   51.50 2509.50     0.23  1050.85   840.54     0.50    0.19    0.13    0.20   0.18  45.15
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    2.84   10.74    0.00   86.36

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   31.50 2135.50     0.33  1940.75  1834.49     0.47    0.22    0.22    0.22   0.20  43.95
sdb               0.00     0.00   29.00 2135.50     0.20  1940.70  1836.43     0.47    0.22    0.17    0.22   0.20  43.95
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.29   11.15    0.00   85.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   67.50 2659.50     0.30   591.65   444.56     0.50    0.18    0.12    0.18   0.17  45.20
sdb               0.00     0.00   66.50 2651.50     0.29   590.42   445.10     0.49    0.18    0.11    0.18   0.16  44.10
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    2.21   10.69    0.00   87.03

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     3.00   15.50 2256.00     0.16  1215.62  1096.15     0.45    0.20    0.26    0.20   0.20  44.30
sdb               0.00     3.00   13.00 2264.50     0.13  1216.85  1094.34     0.45    0.20    0.15    0.20   0.19  43.70
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.15   11.72    0.00   85.07

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   92.50 2638.00     0.49  1039.02   779.68     0.53    0.19    0.11    0.20   0.17  45.25
sdb               0.00     0.00   90.00 2641.50     0.52  1038.91   779.33     0.53    0.19    0.15    0.19   0.16  44.80
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    2.92   11.41    0.00   85.67

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     1.00   65.00 2549.50     0.26   905.43   709.45     0.49    0.19    0.05    0.19   0.17  43.45
sdb               0.00     0.50   58.00 2543.00     0.26   905.18   712.94     0.51    0.20    0.09    0.20   0.17  44.55
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    3.09   11.04    0.00   85.80

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   60.00 2244.00     0.41  1526.12  1356.91     0.49    0.21    0.17    0.21   0.20  45.10
sdb               0.00     0.00   63.00 2244.50     0.39  1526.45  1355.13     0.48    0.21    0.21    0.21   0.19  43.65
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    2.85   11.47    0.00   85.61

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   24.50 2607.50     0.15   801.90   624.09     0.52    0.20    0.20    0.20   0.17  45.80
sdb               0.00     0.00   19.50 2627.00     0.11   803.70   622.02     0.50    0.19    0.26    0.19   0.17  44.45
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.13    0.00    5.44   11.25    0.00   83.19

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   74.00 2762.00     0.29   872.94   630.60     0.56    0.20    0.09    0.20   0.16  44.20
sdb               0.00     0.00   74.00 2771.00     0.29   878.07   632.30     0.55    0.19    0.09    0.19   0.15  44.05
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.13    0.00    6.36   12.03    0.00   81.49

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.50   60.50 2511.50     0.57  1823.39  1452.36     0.53    0.20    0.36    0.20   0.17  43.50
sdb               0.00     0.50   63.50 2497.00     0.66  1816.62  1453.55     0.54    0.21    0.35    0.21   0.18  45.95
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    4.11   12.34    0.00   83.29

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   53.00 2764.50     0.23   902.79   656.39     0.51    0.18    0.17    0.18   0.16  45.00
sdb               0.00     0.00   47.00 2770.50     0.24   902.75   656.37     0.52    0.18    0.21    0.18   0.17  46.90
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.13    0.00    3.21   11.96    0.00   84.70

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   30.50 2608.50     0.12  1529.08  1186.74     0.52    0.20    0.21    0.20   0.17  46.05
sdb               0.00     0.00   29.50 2593.00     0.12  1529.77  1194.74     0.51    0.20    0.22    0.19   0.18  46.15
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    1.70    5.29    0.00   92.76

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   17.00 1343.50     0.07   317.63   478.23     0.27    0.19    0.26    0.19   0.13  17.70
sdb               0.00     0.00   16.50 1358.50     0.06   316.93   472.15     0.26    0.19    0.30    0.19   0.13  17.85
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.13    0.00    0.00   99.81

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     1.00    0.00   14.00     0.00     0.10    14.29     0.00    0.07    0.00    0.07   0.04   0.05
sdb               0.00     2.00    0.00   13.00     0.00     0.10    15.38     0.00    0.08    0.00    0.08   0.04   0.05
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd48              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd64              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd80              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

^C
[root@hoge ~]# 
SATA 接続なのに wMB/s にあり得ない数字が出てますが、TRIM されたサイズを書き込みとして計測してしまっているのでしょうかね。
使用している SSD は Crucial MX200 です。その後、scrub を行い正常終了しました。
root@hoge ~]# zpool status
  pool: tankW
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
 still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
 the pool may no longer be accessible by software that does not support
 the features. See zpool-features(5) for details.
  scan: scrub repaired 0B in 0 days 00:17:03 with 0 errors on Fri May 31 07:10:23 2019
config:

 NAME                                               STATE     READ WRITE CKSUM
 tankW                                              ONLINE       0     0     0
   mirror-0                                         ONLINE       0     0     0
     ata-Crucial_CT500MX200SSD3_xxxxxxxxxxxx-part8  ONLINE       0     0     0
     ata-Crucial_CT500MX200SSD3_yyyyyyyyyyyy-part8  ONLINE       0     0     0

errors: No known data errors
[root@hoge ~]# zpool history tankW | head 
History for 'tankW':
2016-08-04.20:21:41 zpool create tankW mirror /dev/sda8 /dev/sdb8  ※3年近く前に作成
2016-08-04.20:21:47 zpool export tankW
2016-08-04.20:22:03 zpool import -d /dev/disk/by-id tankW
...

2018年3月14日水曜日

SSD に対する定期的な fstrim 実行

CentOS 7 で、SSD の性能維持のため、定期的に fstrim を実行したいと思い、安直に cron を書きそうでしたが、その前に調べて見たところ、systemd が予め用意してくれているサービスがあることを知りました。
[root@hoge ~]# cat /usr/lib/systemd/system/fstrim.timer 
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=multi-user.target
これを systemctl enable fstrim.timer すればよいです。なるほど、systemd には cron ちっくな機能も盛り込まれてるのですね。

2017年9月24日日曜日

中古SSDの初期確認

某ショップから、中古で SanDisk 製 SSD を入手しました。その初期確認結果、備忘録です。

まず、Win7 環境から定番ソフトで確認した結果です。

中古ということで、どのくらい消耗しているのかが気がかりでしたが、SanDisk SSD Dashboard で「余寿命」が 100% でした。入手価格からすれば、よい買い物であったように感じます。

次は、CentOS6 環境で採取した smartctl -a の結果です。
smartctl 5.43 2016-09-28 r4347 [x86_64-linux-2.6.32-696.10.1.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Marvell based SanDisk SSDs
Device Model:     SanDisk SDSSDXPS240G
Serial Number:    xxxxxxxxx143
LU WWN Device Id: 5 001b44 yyyyyyyyy
Firmware Version: X21100RL
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ACS-2 revision 3
Local Time is:    Sat Sep 23 18:53:25 2017 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
     was never started.
     Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
     without error or no self-test has ever 
     been run.
Total time to complete Offline 
data collection:   (    0) seconds.
Offline data collection
capabilities:     (0x11) SMART execute Offline immediate.
     No Auto Offline data collection support.
     Suspend Offline collection upon new
     command.
     No Offline surface scan supported.
     Self-test supported.
     No Conveyance Self-test supported.
     No Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
     power-saving mode.
     Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
     General Purpose Logging supported.
Short self-test routine 
recommended polling time:   (   2) minutes.
Extended self-test routine
recommended polling time:   (  10) minutes.

SMART Attributes Data Structure revision number: 4
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   ---    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   253   100   ---    Old_age   Always       -       707
 12 Power_Cycle_Count       0x0032   100   100   ---    Old_age   Always       -       421
166 Min_W/E_Cycle           0x0032   100   100   ---    Old_age   Always       -       1
167 Min_Bad_Block/Die       0x0032   100   100   ---    Old_age   Always       -       45
168 Maximum_Erase_Cycle     0x0032   100   100   ---    Old_age   Always       -       45
169 Total_Bad_Block         0x0032   100   100   ---    Old_age   Always       -       606
171 Program_Fail_Count      0x0032   100   100   ---    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   ---    Old_age   Always       -       0
173 Avg_Write/Erase_Count   0x0032   100   100   ---    Old_age   Always       -       14
174 Unexpect_Power_Loss_Ct  0x0032   100   100   ---    Old_age   Always       -       76
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   ---    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   ---    Old_age   Always       -       3
194 Temperature_Celsius     0x0022   070   046   ---    Old_age   Always       -       30 (Min/Max 16/46)
199 SATA_CRC_Error          0x0032   100   100   ---    Old_age   Always       -       0
212 SATA_PHY_Error          0x0032   100   100   ---    Old_age   Always       -       0
230 Perc_Write/Erase_Count  0x0032   100   100   ---    Old_age   Always       -       46
232 Perc_Avail_Resrvd_Space 0x0033   100   100   004    Pre-fail  Always       -       100
233 Total_NAND_Writes_GiB   0x0032   100   100   ---    Old_age   Always       -       3815
241 Total_Writes_GiB        0x0030   253   253   ---    Old_age   Offline      -       2895
242 Total_Reads_GiB         0x0030   253   253   ---    Old_age   Offline      -       4817
244 Thermal_Throttle        0x0032   000   100   ---    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Device does not support Selective Self Tests/Logging
次は、hdparm -I の結果です。
ATA device, with non-removable media
        Model Number:       SanDisk SDSSDXPS240G                    
        Serial Number:      xxxxxxxxx143        
        Firmware Revision:  X21100RL
        Media Serial Num:   
        Media Manufacturer: 
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Used: unknown (minor revision code 0x0110) 
        Supported: 9 8 7 6 5 
        Likely used: 9
Configuration:
        Logical         max     current
        cylinders       16383   65535
        heads           16      1
        sectors/track   63      63
        --
        CHS current addressable sectors:    4128705
        LBA    user addressable sectors:  268435455
        LBA48  user addressable sectors:  468862128
        Logical  Sector size:                   512 bytes
        Physical Sector size:                   512 bytes
        Logical Sector-0 offset:                  0 bytes
        device size with M = 1024*1024:      228936 MBytes
        device size with M = 1000*1000:      240057 MBytes (240 GB)
        cache/buffer size  = unknown
        Form Factor: 2.5 inch
        Nominal Media Rotation Rate: Solid State Device
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 1   Current = 1
        Advanced power management level: 128
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4 
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    DOWNLOAD_MICROCODE
           *    Advanced Power Management feature set
                SET_MAX security extension
           *    48-bit Address feature set
           *    Device Configuration Overlay feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
           *    General Purpose Logging feature set
           *    WRITE_{DMA|MULTIPLE}_FUA_EXT
           *    64-bit World wide name
           *    WRITE_UNCORRECTABLE_EXT command
           *    {READ,WRITE}_DMA_EXT_GPL commands
           *    Segmented DOWNLOAD_MICROCODE
           *    Gen1 signaling speed (1.5Gb/s)
           *    Gen2 signaling speed (3.0Gb/s)
           *    Gen3 signaling speed (6.0Gb/s)
           *    Native Command Queueing (NCQ)
           *    Host-initiated interface power management
           *    Phy event counters
           *    unknown 76[15]
           *    DMA Setup Auto-Activate optimization
           *    Device-initiated interface power management
           *    Software settings preservation
                unknown 78[8]
           *    Data Set Management TRIM supported (limit 16 blocks)
           *    Deterministic read ZEROs after TRIM
Security: 
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
                supported: enhanced erase
        2min for SECURITY ERASE UNIT. 18min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 5001b44yyyyyyyyy
        NAA             : 5
        IEEE OUI        : 001b44
        Unique ID       : yyyyyyyyy
Checksum: correct
次は、diskutility での読み込みベンチマーク結果です。

おそらくですが、全領域ゼロ書き込みした状態と思われるので、SecureErase を行いました。
次は、SecureErase 後の diskutility ベンチマークの結果です。ちょっとだけ数値がアップしています。

なお、思わず盲目的に SecureErase をやってしまいましたが、blkdiscard で十分だったかもしれません。

2017年8月18日金曜日

ThinkPad W520 + CentOS 7 夏対策(省電力設定)

このところ、firefox でブラウズしているだけでも、冷却ファンが回り続けてしまい耳障りなので、夏対策を少々。
定番的なものだけですが、備忘録です。

まず、NVIDIA のドライバを nouveau から kmod-nvidia に変更しました(elrepo 利用)。最近は安定していて、それほど不満ないので、nouveau を使ってましたが、おそらくは NVIDIA 謹製ドライバでないと、省電力制御が働かないのではと思ったので。
[root@hoge ~]# yum list kmod-nvidia --enablerepo=elrepo --showduplicates
読み込んだプラグイン:fastestmirror, langpacks, nvidia
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * elrepo: elrepo.org
 * extras: download.nus.edu.sg
 * updates: download.nus.edu.sg
利用可能なパッケージ
kmod-nvidia.x86_64                 367.57-1.el7.elrepo                   elrepo 
kmod-nvidia.x86_64                 367.57-2.el7.elrepo                   elrepo 
kmod-nvidia.x86_64                 367.57-3.el7.elrepo                   elrepo 
kmod-nvidia.x86_64                 375.66-1.el7.elrepo                   elrepo 
kmod-nvidia.x86_64                 384.59-1.el7.elrepo                   elrepo ※こっちを利用
kmod-nvidia.x86_64                 384.59-2.el7_4.elrepo                 elrepo 
※↑あいにく RHEL7.4 カーネル向けが出ていて、まだ CentOS 7.4 が出てないので、こっちは NG (シンボルエラーになる)
[root@hoge ~]# yum install kmod-nvidia-384.59-1.el7.elrepo.x86_64 --enablerepo=elrepo
...
あとは、CPU と SSD の省電力設定を行いました。
[root@hoge ~]# cpupower frequency-set -g powersave
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
[root@hoge ~]# find /sys/ | grep link_power
/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/scsi_host/host1/link_power_management_policy
/sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/scsi_host/host2/link_power_management_policy
/sys/devices/pci0000:00/0000:00:1f.2/ata4/host3/scsi_host/host3/link_power_management_policy
/sys/devices/pci0000:00/0000:00:1f.2/ata5/host4/scsi_host/host4/link_power_management_policy
/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/scsi_host/host5/link_power_management_policy
[root@hoge ~]# lsdisk
DEVICE   Driver        PCI           Description
================================================================================
scsi0    ahci          00:1f.2       +
  sda    sd                 .        scsi0 ch=0 id=0 lun=0  size=240.0GB
scsi1    ahci          00:1f.2       +
  sdb    sd                 .        scsi1 ch=0 id=0 lun=0  size=240.0GB
scsi2    ahci          00:1f.2       +
scsi3    ahci          00:1f.2       +
scsi4    ahci          00:1f.2       +
scsi5    ahci          00:1f.2       +

[root@hoge ~]# echo min_power > /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
[root@hoge ~]# echo min_power > /sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/scsi_host/host1/link_power_management_policy
... 約10分後 ...
[root@hoge ~]# hddtemp 
/dev/sda: INTEL SSDSC2BW240A4: 40°C  ※だいたい、マイナス2度ほど下がりました
/dev/sdb: INTEL SSDSC2BW240A4: 35°C  ※だいたい、マイナス2度ほど下がりました
[root@hoge ~]# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +57.0°C  (crit = +99.0°C)

thinkpad-isa-0000
Adapter: ISA adapter
fan1:        2532 RPM  ※この回転数だと、それほど耳障りではなかったです

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +57.0°C  (high = +86.0°C, crit = +100.0°C)
Core 0:         +57.0°C  (high = +86.0°C, crit = +100.0°C)
Core 1:         +54.0°C  (high = +86.0°C, crit = +100.0°C)
Core 2:         +53.0°C  (high = +86.0°C, crit = +100.0°C)
Core 3:         +54.0°C  (high = +86.0°C, crit = +100.0°C)
これらの対策により、冷却ファンは鎮まりました。こうやって、マニュアル操作でいじくれるのが Linux のよいところですね。

2016年6月4日土曜日

SSD の突然死

ちょうど1年ほど前(2015-5-14)に、某ショップから購入した中古 SSD が突然死したので、備忘録です。
壊れた SSD は、Intel 313 Series SSD (SSDSA2UP020G3H) (SSD/20GB/2.5インチ/SATA) というもので、中古で 2000 円程度で購入したものです。20G と小容量で SLC タイプということで、Linux サーバの OS ディスク用にと思ったのですが、実際には殆ど使っておらず、サーバに接続して通電 (モバイルラックに挿していた) していました。
そのサーバ (CentOS 7) が、めずらしくフリーズ (この1年の運用で初めて) したのですが、そのフリーズ後から認識しなくなりました。モバイルラックから取り出す時は、かなりの高温 (かろうじて手に持つことが出来るが、焼き芋のようにアツアツな状態) になってましたので、何か暴走的なことが起きたのかも?
症状から察するに、冷えたらまた認識できるかもと思ったのですが、全く認識されなくなりました。所謂、突然死です。
SSD って、こういう壊れ方するかもしれない、という憶測はもってましたが、自分の手持ちの SSD で本当に突然死したのはこれが初めてです。
幸い、大事なデータや OS 環境すらも入っておらず、たしか空っぽだったので、良かったですが、こういったことを踏まえると、バックアップや冗長化 (RAIDなど) は大事だなと思ったのでした。

購入直後 (2015-05-16) の CDI キャプチャ画面です。新古品と言ってもよさそうな、ショップさんがゼロクリアした程度の値でした。 なお、その当時、安かったのでもう1個購入しているのですが、そちらはまだ動いてます (中身は突然死した個体と同様に空っぽ)。
今後、同様に壊れるかもしれないし、ZFS の L2ARC (キャッシュ) にでもして、酷使してみようかなと思っています。そうだ、そうしよう。

■関連記事
ThinkPad X300 のSSDで不良セクタを発見

2015年12月26日土曜日

Intel SSD710 で Over-Provisioning 設定してみた

ちょうど180Gくらいの SSD を用立てたいと思っていたところ、この日、Intel SSD 710 の特価情報を目にして、一目散に秋葉原へ・・・。危うく売り切れのところ、なんと最後の1個をゲットできました。
手持ちの180GのSSD(Intel 520)と組み合わせてソフトウェアRAID(md or ZFS or Btrfs)で利用しようと考えたのですが、今回ゲットしたのは200Gなので、少々余ります。そこで思い出したのがオーバープロビジョニング。興味本位もあり、180GのSSDと同じサイズに揃えてみようと思いました。
おぼろげに、HPA(Host Protected Area)を設定すればいいはずだとは知ってましたが、根拠になる情報をネット検索してみたところ、Intel から次のドキュメントが公開されているのを見つけました。

Intel&reg: Solid-State Drives in Server Storage Applications White Paper February 2014

このPDFの「3.1 Adjusting User Capacity - Over-Provisioning」に記述があり、HPA を設定すれば良いという理解で合っているようです(注: HPA を設定しなくても、パーティションを切るときに、末尾領域を余らせるという方法でも良いようで、最もお手軽な、その手法が Intel のお勧めである と記述されています)。

てなわけで、CentOS 7 の hdparm コマンドで、次のような手順で HPA を設定しました。
[root@hoge ~]# cat /sys/block/sdb/device/model    ※まず、対象を間違えないように、確認。これ超重要です。
INTEL SSDSA2BZ20
[root@hoge ~]# hdparm -Np351651888 --yes-i-know-what-i-am-doing /dev/sdb

/dev/sdb:
 setting max visible sectors to 351651888 (permanent)
 max sectors   = 351651888/390721968, HPA is enabled
※このあと、いったんシャットダウン&電源OFF して再起動する。
ここで、351651888 は、予め確認しておいた Intel SSD 520 180G の総セクタ数です。

次は、HPA 設定後の dmesg から抜粋です。どうやら、成功した様子が読み取れます。
[root@hoge ~]# dmesg | egrep "ata2|sdb"
[    1.384635] ata2: SATA max UDMA/133 abar m2048@0xf2427000 port 0xf2427180 irq 27
[    1.999869] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.000849] ata2.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[    2.000856] ata2.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    2.001170] ata2.00: HPA detected: current 351651888, native 390721968
[    2.001181] ata2.00: ATA-8: INTEL SSDSA2BZ200G3, 6PB10362, max UDMA/133
[    2.001187] ata2.00: 351651888 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    2.002169] ata2.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[    2.002177] ata2.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    2.002510] ata2.00: configured for UDMA/133
[    2.662193] ata2.00: Enabling discard_zeroes_data
[    2.662205] sd 1:0:0:0: [sdb] 351651888 512-byte logical blocks: (180 GB/167 GiB)
[    2.662419] sd 1:0:0:0: [sdb] Write Protect is off
[    2.662423] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    2.662446] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.662556] ata2.00: Enabling discard_zeroes_data
[    2.663234]  sdb: unknown partition table
[    2.663378] ata2.00: Enabling discard_zeroes_data
[    2.663486] sd 1:0:0:0: [sdb] Attached SCSI disk

2015年8月23日日曜日

ThinkPad W520 で SSD 2台で IRST(インテルラピッドストレージテクノロジー)RAID1

ThinkPad W520 の IRST にて、RAID1 構成を組みました。

ぴったり1年前に書いたのですが、IRST の RAID ボリュームは、CentOS からは md RAID に見えます。
[root@hoge ~]# uname -a
Linux hoge 3.10.0-229.7.2.el7.x86_64 #1 SMP Tue Jun 23 22:06:11 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@hoge ~]# cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-3.10.0-229.7.2.el7.x86_64 root=UUID=75c154b8-fc8c-49b1-8f83-4b34792f17f8 ro elevator=deadline vconsole.keymap=jp106 crashkernel=auto vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=1 rd.auto LANG=ja_JP.UTF-8
[root@hoge ~]# mdadm --detail-platform
       Platform : Intel(R) Matrix Storage Manager
        Version : 10.1.0.1008
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : not supported
      Max Disks : 7
    Max Volumes : 2 per array, 4 per controller
 I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA)
[root@hoge ~]# cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sda[1] sdb[0]
      234428416 blocks super external:/md127/0 [2/2] [UU]
      
md127 : inactive sdb[1](S) sda[0](S)
      5032 blocks super external:imsm
       
unused devices: 
[root@hoge ~]# mdadm -D /dev/md126
/dev/md126:
      Container : /dev/md/imsm0, member 0
     Raid Level : raid1
     Array Size : 234428416 (223.57 GiB 240.05 GB)
  Used Dev Size : 234428548 (223.57 GiB 240.05 GB)
   Raid Devices : 2
  Total Devices : 2

          State : active 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0


           UUID : 6e7baff8:151abd71:f81f8d33:ff110ddb
    Number   Major   Minor   RaidDevice State
       1       8        0        0      active sync   /dev/sda
       0       8       16        1      active sync   /dev/sdb
[root@hoge ~]# mdadm -D /dev/md127
/dev/md127:
        Version : imsm
     Raid Level : container
  Total Devices : 2

Working Devices : 2


           UUID : d20e7f17:aa8e195e:97bd9260:f822e1bb
  Member Arrays : /dev/md/Volume0

    Number   Major   Minor   RaidDevice

       0       8        0        -        /dev/sda
       1       8       16        -        /dev/sdb
[root@hoge ~]# df
ファイルシス   1K-ブロック    使用   使用可 使用% マウント位置
/dev/md126p6      20480000 6733536 12328768   36% /    ※デバイス名には注意必要です
devtmpfs           8101144       0  8101144    0% /dev
tmpfs              8110564      84  8110480    1% /dev/shm
tmpfs              8110564    9280  8101284    1% /run
tmpfs              8110564       0  8110564    0% /sys/fs/cgroup
tankK             70524288     128 70524160    1% /tankK
tankK/spool       71024896  500736 70524160    1% /tankK/spool
「Intel® Rapid Storage Technology enterprise (Intel® RSTe) for Linux OS Document Number: 327602-001US Software User’s Manual」という資料に、IRST における mdadm 操作方法が一通り解説されています。

これが出来なきゃ躊躇するところですが、Windows 7 と CentOS のマルチブートも問題ありません。MBM も使えてます。

Windows 7 上のユーティリティ(バージョンは 2014/11/06 13.6.0.1002)からは、次のように見えます。

ここで、ThinkPad の利点(バッテリ搭載している)を生かして、キャッシュモードをライトバックに設定しました! (^0^)g

CrystalDiskMark の値は次の通りです。

RAID1 としては抜群の値です。ハードウェア RAID1 の場合、たいてい NCQ が有効にならないのですが、IRST はソフトウェア RAID(Fake RAID)であり、個々のドライブは NCQ 有効なので、ランダムアクセスの性能が落ちません。それから、OS からは各ドライブが直に見えるので S.M.A.R.T. の確認が簡単に出来るのも、ソフトウェア RAID の利点かと思います。Linux なら smartctl で、Windows なら CrystalDiskInfo が使えます。対して、ハードウェア RAID の場合は、RAID ベンダ提供のユーティリティでないと参照できません。ユーティリティが S.M.A.R.T. 取得に対応してない場合もあります。
それにしても、もしも RAID0 にしたら、1000M オーバーもいけそうな感じですね。。。

なお、SSD は SanDisk Extreme PRO 240G x2台を使用しています。この SSD は、充分に速いのに加えて、温度があまり上がらない(今みたら 1st が 38℃、2nd が 34℃)のが魅力かなと思います。現在、カカクコムにて満足度ランキング1位だったりもします。眉唾(話し半分)ととらえるべきと思いますが、それでも自分の使ってる SSD が1位なのは気分よいものですね。
個人的には、性能なら Crucial MX200 のほうが上かと思います(別のマシンで使ってるもので)。しかし、MX200 の順位は10位なようです。

最後に、ThinkPad W520 であっても IRST オプション ROM を搭載しているのは、一部の型番だけなので、もしもこのブログを読んで中古購入する場合は、くれぐれもご注意ください。

2015-09-12追記 この手の RAID システムで気になるのが、コントローラ(この場合は ThinkPad の MB)が壊れたら、データを救済できないのではないか?ということだと思います。が、試したところ、この形態の場合、他のマシンにドライブを接続すれば、IRST オプション ROM が搭載されていなくても、CentOS で起動すれば md として扱うことができるようです。RAID 非対応の旧メインマシン(ThinkPad T510)に接続して、中身のデータにアクセスできることを確認しました。これで安心。あ、いえ、だとしても rm -rf のようなことを考えれば、RAID1 であってもバックアップが要らないということではないとは、理解しています。

2016-02-04追記 Win7上で計測したCDMの計測値のうち、READ値が高いのは、IRSTドライバの振る舞いによるものであり、Linuxのmd RAID1の場合は1ストリームでは1ドライブ分しか出ませんので、付記しておきます。ZFS on LinuxのmirrorでもREADを複数ドライブに分散させてくれるし、md RAID1もオプションでそういう機能があってもいいのかも(難しいのかもですが)。それと、最新のバージョンを確かめていませんが、Btrfs RAID1の場合も1ストリームだと同時には1ドライブにしかREADを出さないようでした(2年程度前の記憶)。


2016-08-24追記 それから1年経過ですが、Win7 / CentOS 6 / CentOS 7 のマルチブート環境として問題なく利用できています。ただ、最新の Fedora を試そうとして、空き領域に Fedora24 を入れてみたことがあるのですが、再起動のたびに md が resync してしまう(シャットダウンの際の md 周りの処理が不完全になる?)ようで、IRST RAID 環境で Fedora を使うことはあきらめました。何か設定が足りなかったのだろうか。。。

2014年12月21日日曜日

ThinkPad W520 の HDD を SSD へ引越し

4年間ほどメインマシンとして ThinkPad T510 (Core i7 M620) を使っており、まだまだ使えそうなのですが、ついついと中古で ThinkPad W520 (Core i7 2960XM) を入手してしまいました。いくつかのベンチマークで、T510 よりも 1.5 倍程度の性能でした。W520 は、メモリスロットが4スロットあり、最大で32Gまで対応できますが、そこまでは不要と判断して、16G(4Gx4枚)としました。そして、W520 は SATA 3.0 対応であり、わたしの自宅マシンとしては初モノです。
というわけで、仕上げに、HDD を SSD に引っ越しましたので、その手順をメモしておきたいと思います。

内蔵されていた HDD は、HITACHI HTS725050A9A364 の容量 500G 7200RPM でした。
どのベンダーの SSD に換装しようかと思ったのですが、今回は自分の中でイメージが良い SanDisk のものを使ってみることにしました。今も使っている Sony CLIE TH55 で、SanDisk 製の MemoryStick を長年使っており、高速だし実績もあるというイメージを持っています。
そんなわけで、Extreme PRO 240G をチョイスしました。

引越し作業は、USB HDD 上にインストールした CentOS 7 から起動して行いました。ちなみに W520 は、USB 3.0 対応でもあるのですが、残念ながら USB 3.0 では CentOS 7 を起動できず、USB 2.0 ポートから起動して作業しました。
プリインストールされていた Win7 のパーティションは、次のようになっていました。
# fdisk -u -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x153c11d0

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     3074047     1536000    7  HPFS/NTFS/exFAT
/dev/sda2         3074048   944003071   470464512    7  HPFS/NTFS/exFAT
/dev/sda3       944003072   976771071    16384000    7  HPFS/NTFS/exFAT
sda1 が Win7 のシステムパーティション、sda2 が Win7 の本体、sda3 がリカバリ領域 (所謂 D2D 領域) です。

まず最初に、sda2 を gparted で縮小しました。ここで、NTFS パーティションを操作するためには、ntfs-3g と ntfsprogs を入れておく必要があります。どちらも EPEL に収録されています。
縮小後のサイズは、次の通りです。
# fdisk -u -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     3074047     1536000    7  HPFS/NTFS/exFAT
/dev/sda2         3074048   134146047    65536000    7  HPFS/NTFS/exFAT
/dev/sda3       944003072   976771071    16384000    7  HPFS/NTFS/exFAT
次に、ディスクの先頭から sda2 の末尾 (sector 134146047) までを、dd コマンドで SSD にコピーしました。SSD は、2nd HDD アダプターに接続。
# echo "134146047 * 512 / 65536" | bc
1048015
# dd if=/dev/sda of=/dev/sdb bs=65536 count=1050000 conv=sparse
必ずそうであるとは断言できませんが、新品の SSD は、全領域がゼロデータのはずなので、conv=sparse でゼロデータをスキップしてコピーしました。ここで、パーティションテーブルも一緒にコピーされたので、不正になった sdb3 を fdisk で削除して、正確に同じサイズの sdb3 を作成しました。
# fdisk -u -l /dev/sdb

Disk /dev/sdb: 240.1 GB, 240057409536 bytes, 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x153c11d0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     3074047     1536000    7  HPFS/NTFS/exFAT
/dev/sdb2         3074048   134146047    65536000    7  HPFS/NTFS/exFAT
/dev/sdb3       134146048   166914047    16384000    7  HPFS/NTFS/exFAT
不要かもしれないとは思いつつ、パーティション 3 の D2D 領域もコピーしました。
# blkdiscard /dev/sdb3  ※1回目の dd で少し余分にコピーしたので、TRIM でクリア
# dd if=/dev/sda3 of=/dev/sdb3 bs=65536 conv=sparse
うまくコピーできたかどうか、md5sum 値を確認。
# dd if=/dev/sda1 bs=65536 | md5sum
# dd if=/dev/sdb1 bs=65536 | md5sum

# dd if=/dev/sda2 bs=65536 | md5sum
# dd if=/dev/sdb2 bs=65536 | md5sum

# dd if=/dev/sda3 bs=65536 | md5sum
# dd if=/dev/sdb3 bs=65536 | md5sum
これで、完全にコピーが終わったので、HDD を取り出して SSD に換装して起動、、、うまくいきました!
D2D リカバリーが出来るかどうかまでは確認していませんが、マシン起動時に ThinkVantage ボタンで D2D リカバリーのメニューには辿り着けました。

余談になりますが、CentOS 7 向けの ntfs-3g は、fstrim に対応しているようです。
# rpm -q --changelog ntfs-3g | less
...
* Thu Jul 31 2014 Richard W.M. Jones <[email protected]> - 2:2014.2.15-4
- Upstream patches which add fstrim support.
いちおう、最後のしめに、コピーした Win7 のパーティションに fstrim をかけました。
本当に fstrim が機能しているか、念のため小さいパーティションで試しましたが、ちゃんと動いているようでした。削除したファイル(ある程度大きいサイズのファイル)の痕跡が消えることを確認しました。

2015-09-08追記
その後、SSD の後半に CentOS を入れて、MBM でマルチブート運用しているのですが、その状態だと ThinkVantage ボタンで D2D リカバリーのメニューを呼び出すことが出来なくなるようです。しかし、MBM で Win7 のシステムパーティションを選択後に F2 連打、そのあと F8 押下で、「システムの回復」を選択すれば D2D リカバリに辿り着けました。ただし、本当にリカバリできて、しかも後半の CentOS パーティションに影響ないのか不明。試行してません。

2014年8月23日土曜日

IRST(インテルラピッドストレージテクノロジー)RAID0構成のWindows PCのSSD移行

お盆休みに、知人が自宅PCをSSDにしたい(HDDからSSDへ引越したい)とのことで、若干の手伝いをしたのですが、これが意外と手こずりました。せっかく得た経験値ですし、備忘録として書いておきたいと思います。

まず、Windows 7 PC ということで、Windows 7 標準のシステムバックアップツール(システムイメージの作成、システム修復ディスクによるリストア)で簡単に引っ越せるものと考えていました。同じディスクへの修復なら、以前に自分で行った経験がありました。その経験値から、SSD に収まるように C: ドライブを縮小すれば、その手が使えるものと推察したのでした。Windows 7 なら、標準のツールでボリューム縮小(パーティション縮小)が行えますし。

それで、まず、HDD がどのような構成になっているか確認させてもらったのですが・・・、意外なことに 500G HDD x 2台による IRST RAID0 構成となっていたのでした。まあでも、SSD のシングル構成に変えたとしても、Windows 7 のシステム修復処理がうまくやってくれるに違いない、、、そう思って、まずはボリューム縮小操作にとりかかったのでした。幸い C: ドライブには、そんなにデータが入っておらず、数字上は、換装する SSD の容量以下に縮小できそうでした。

ところが、Windows 7 のボリューム縮小処理では、ファイル配置のためか、目標のサイズまで縮小できませんでした。どうも、そのパーティション内で最も後ろに配置されたファイルのところまでしか圧縮できないらしいのです。Defraggler というツールで、ファイル配置を確認しました。gparted なら、ファイル移動してでも縮小してくれるのですが、おそらくですが、Windows 7 は安全を優先しているのでしょう。妥当だろうと思います。

そんなら、CentOS や Fedora の Live メディア + gparted でやればよいや、っと通常なら考えるところですが、今回は IRST の RAID0 構成というのが頭をよぎり、遠回りをしてしまいました。なんとか、ファイルの配置をうまく整える(パーティションの先頭にファイルを寄せる)ことができれば、目標のサイズにボリューム縮小できるようになるのではないかと考えたのです。

それで、いろいろな Windows 用のデフラグツール(freeなもの)を漁り、パーティションの先頭にファイルを寄せる機能がないか探したのですが、とうとう見つけられませんでした。この探索に長時間食ってしまいました。。。

気を取り直しあきらめて、勝手知ったる CentOS 6.5 LiveDVD から起動してみたところ、IRST RAID0 は、md126 に見えることが確認できました。そんなら大丈夫そうだと、EPEL から、gparted と ntfsprogs を入れ、C: ドライブを縮小したところ、なんなく成功しました。
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install ntfsprogs  ※NTFSのパーティション操作するために必要
# yum install gparted
# gparted

パーティション縮小できたので、Windows 7 のシステムイメージ作成で、USB ディスク上にバックアップイメージを作成し、元のディスク(500G x 2)を外して、新しい SSD を接続して、システム修復ディスクから起動してリストアを実施。これでいけるだろうと思ったのですが、謎のエラーでうまくいかず。ネットで調べたところでは、バックアップ元のディスクより大きいサイズのディスクでなければ、リストアできないという仕様らしいです。( ゚ ▽ ゚ ;)なんと!! またもかなりの時間を食ってしまったのでした。

そうなると最後の手段、CentOS 6.5 LiveDVD から起動して、dd でコピーすればうまくいくだろうかと、SSD を外して、元のディスクを元のSATAポート(port0およびport1)へ再接続、SSD は空きのSATAポートへ接続して、LiveDVD から起動。sdX を取り違えないように、慎重に確認して、コピー実行。
# cat /sys/block/sdc/device/model
# dd if=/dev/md126 bs=1M | dd of=/dev/sdc bs=1M

最後に、シャットダウンして元のディスク(500G x 2台)を外し、SATA port0 に SSD を接続。。。たのみます、起動してくれっと拝みつつパワーオン。。。成功でした!! Windows 7 の起動アニメーションが表示され、無事に起動完了・引越し完了。

CentOS 6.5 なら、mdadm で IRST RAID を扱えるという知識・経験を得ることができました。これまで個人的には、Windows PC については、可能なら HW-RAID1 を使ってきましたが、PC が対応しているなら IRST RAID1 でもいいかもしれないと感じました。たぶん HW-RAID1 よりも、IRST RAID1 のほうが性能が出るでしょうから。なぜならば、NCQ が使えるだろうから。

2015-08-23追記
あれから1年、どうしても IRST マシンを使ってみたくなり、メインマシンを T510 から W520 に移行しました。これぞファイナルThinkPad!自分史上最強のマシンとなりました。こちらを参照。

2015-10-15追記
Windows の話しですが、UltraDefrag というツールのコンパクトモードという機能を使えば、パーティションの先頭にファイルを寄せることができるらしいです。試していませんが、次のページに情報がありました。
http://gigazine.net/news/20080304_ultradefrag/
それにしても、なぜあの時は、このページに辿りつかなかったんだろう。
Windows 7 の「ディスクの管理」で、ボリューム縮小操作をする時に有用かもしれません。試してないですが、備忘録まで。

2013年12月7日土曜日

CentOS 6.5 のトピックス

CentOS 6.5 で新たに追加された機能等の、自分用メモです。
なんと言っても、個人的には md の TRIM サポートが追加されたことがありがたいです。
https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/6.5_Release_Notes/bh-storage.html
~抜粋~
mdadm での TRIM サポート
mdadm ツールは、RAID0、RAID1、RAID10、RAID5 向けに TRIM コマンドをサポートします。
~~~
SSD を md で束ねたい方に朗報ではないかと思います。md RAID0 (SSD 3台利用) の上に ext4 を作成して試してみましたが、fstrim 出来るようになってました!

<その他に目に留まったもの>
・makedumpfile に LZO と Snappy サポートが追加。ダンプ時間短縮に有効です。

2014-05-11追記
md RAID0 以外でも TRIM が動くのか、RAID1、RAID10、RAID5 も試してみましたが、わたしの環境では RAID1 + ext4 は fstrim 出来ましたが、RAID10 と RAID5 は NG でした。使った SSD は、Plextor の M6M です。hdparm によると、M6M は、RZAT/DRAT の両方が非対応になっているようなので、もしかしたらそこらが関係するのだろうかと思ってます。パッチを読めという話でしょうが、また今度。。

2014-05-12追記
カーネル 2.6.32-431.17.1.el6 の changelog を確認してみたら、RAID5 については、
2013-11-10 12:00:00
Rafael Aquini  [2.6.32-431.el6]:
- [md] Disabling of TRIM on RAID5 for RHEL6.5 was too aggressive (Jes Sorensen) [1028426]
...
2013-10-21 12:00:00
Rafael Aquini  [2.6.32-425.el6]:
...
- [md] Disable TRIM on RAID5 for RHEL 6.5 (Jes Sorensen) [837097]
6.5 の最終段階で、disable にされたようです。何らか、うまく行かないパターンがあったのでしょう。
あと、RAID10 についてですが、先日、実験する際、起動するカーネルを間違えていたようで、オラクル UEKr2 を使っていたせいのようです。あらためて、2.6.32-431.17.1.el6 で再度実験を行ったところ、Plextor M6M の md RAID10 + ext4 は OK でした(fstrim 動きました)。

2013年4月1日月曜日

メインマシン ThinkPad T510 に R2021D を搭載

メインマシンとして ThinkPad T510 で、Windows 7 Professional と CentOS 6 をマルチブートで使用しています。純粋な Linux サーバであれば、md を使ってソフトウェア RAID1 にして運用するところですが、ノートPCで かつ Windows も使う環境ということで、OS 領域の RAID 化は諦めていました。データ領域については、eSATA 接続の ハードウェア RAID1 を利用しています。

もしメインマシンの OS ディスクが壊れたら、復旧が面倒だし結構ダメージ受けるなあとは思っていたのですが、先日、mSATA SSD 2枚で、2.5 inch ディスクサイズの RAID1 を構築できるユニット R2021D が発売され、面白そうだったのもあり、導入してみることにしました。
以下、少しレビューです。

まず、変換基盤裏面はこんな感じです。RAID のモードを設定するディップスイッチがあるのですが、ON / OFF の説明と逆向きになっています。


次は、表面に mSATA SSD 2枚 を搭載した状態です。今回は、PLEXTOR M5M 256G をチョイスしました。添付されていた説明書では、どのネジで mSATA SSD を留めるのかが分からず、意外と苦戦しました。加えて、mSATA SSD は初めて取り扱ったので神経使いました。


Windows 領域の引越しのため、ThinkPad の 2nd HDD アダプターに載せた状態です。

こちらを、DVD ドライブベイに差し込んで、元ディスク (Intel SSD 520 240G) 上の CentOS 6 を起動して、dd で丸ごと OS の引越しを行いました。
# dd if=/dev/sda of=/dev/sdb bs=1M  ※この類の操作をする際は、hdparm -I 等で個体確認必須です

メインディスクを入れ替えて、換装終了です。

この画像は、当初搭載されていた HDD のマウンタを R2021D に着けた状態です。

Windows 7 を起動して、RAID 管理ツールから状態を確認。


参考までに、CrystalDiskMark の数値はこの程度でした。


載せ換える前まで使っていた Intel 520 よりは性能が劣りますが、OS 起動時間はほとんど変わりませんでした。
マルチブートの CentOS 5 および 6、それと FreeBSD 9 の起動にも支障ありませんでした。

CentOS 6 からは、次のように見えます。
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: ATA-7: JMicron H/W RAID1, 0959, max UDMA/133
ata1.00: 500039680 sectors, multi 1: LBA48 
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: configured for UDMA/133
ata1.00: configured for UDMA/133
ata1: EH complete
scsi 0:0:0:0: Direct-Access     ATA      JMicron H/W RAID 0959 PQ: 0 ANSI: 5

2013-05-31追記
M5M (FW 1.02) は、かなり熱を発っするようでしたが、FW を 1.03 にアップデートしたところ、改善されたように思われます。FW アップデートには、AREA の上用賀というアダプタを利用しました。

2013-10-26追記
M5M の FW 1.04 が出ていたので、アップデートしました。更新履歴には4点ほど改善点が書いてありました。
2013/10/11 1.04 
This firmware revision improves: 
1. Drive compatibility with Lenovo/Dell NB. 
2. Data error recovery capability 
3. Drive health on platform which support DEVSLP. 
4. Drive stability when execute GC 
R2021D との組み合わせでは、負荷が掛かると不安定 (mirror が外れる) な時がありましたが、負荷に強くなったように思われます。

2013-11-27追記
M5M の FW を 1.04 にアップデートしてから1ヶ月経過しましたが、実に快調で、1度も mirror が外れることはありませんでした。それと、1.03 と比べても発熱し難くなった感じです。ThinkPad T510 の HDD ベイ位置は左手の下あたりで、M5M 2枚ということもあり、初期の FW では物凄く熱くなってましたが、現在の FW 1.04 では、元々載っていた HDD よりも冷たいぐらいな感触です。Plextor さんのエンジニアに感謝です!
mSATA SSD を使うマシン環境が他にありませんが、もし新規のマシンで mSATA 使うんなら、現時点なら、迷わず M5M を選ぶと思います。DEVSLP にも対応してますしね。

2014-01-25追記
M5M の FW 1.05 が出ているようです。
20140109 1.05 
This firmware revision improves: 
1. Drive stability while computer be accidentally powered off due to 
unexpected external operations. 
2. Read and write performance 
consistency on Linux operating systems 
Linux 向けの修正が入っているようで興味を惹かれますが、現在 1.04 で不都合は無く、アップデート作業は結構手間 (R2021D からの mSATA 取り出し、バックアップ/リストア) なので、今回は見送りたいと思います。

2014-02-26追記
玄人志向から出た mSATA RAID アダプタ(KRHK-mSATAX2/S7)を試してみました。
私のマシンは SATA2 までなので、M5M を十分活かせていませんが、R2021D よりも性能アップするのでは?と思ったのですが、結果は大して変わらず。

さらに、残念ながら私のマシン環境(ThinkPad T510 + KRHK-mSATAX2/S7 + M5M 256G x 2枚)では安定動作せず、マシンを再起動するとディスク(RAID1 ボリューム)を見失うことがあり、常用できませんでした。
加えて言うと、JMicron のチップ JMS562 が載っているのですが、RAID 管理ツールが使えず(説明書にも記載なし)、動作状況を把握するのに基板上の LED を見ないといけませんので、その点でも常用は無理でした。
ということで、結局 R2021D に戻しました。3千円台というお手頃値段でしたし、あきらめて、お蔵入りです。

2014-03-01追記
KRHK-mSATAX2/S7 を試行した際に、M5M の FW を 1.05 にアップデートしていたのですが、R2021D に戻してから性能が落ちた状態(seq READ/WRITE が 120MB/s くらいだったので RAID アダプタと mSATA の間のリンクが 1.5Gbps に落ちていた?)になり、secure erase を行ったり、RAID ボリュームを再作成したりしましたが回復せず、まさかとは思いつつも、M5M の FW を 1.04 に戻してみたら、以前の性能に戻りました。自分には分かりませんが FW 開発(各種チューニング、トレードオフ)は難しいのだろうなと想像します。なお、Plextor さんの場合、古い FW は公開されてないようで、以前ダウンロードしたのを消さないで放置していてよかったです。

2014-03-12追記
ディップスイッチの状態です。


2014-07-29追記
M5M の FW 1.06 が出ているようなのですが、いつの間にか、名前と Email アドレス(必須)を入力しないとダウンロードできなくなったようです。これは、結構がっかりです。次回以降 SSD を調達する際、マイナスポイントとして考慮してしまうと思います。修正内容は、公開されている PDF (こちらは Email アドレス入力不要)に、次のように記載されてます。
2014/07/08 1.06
This firmware revision improves:
1. Response ability during executing GC and operating.
2. Lag problem when doing S4/S5 under few specific situations and platforms.
わたしの環境では、1.05 で問題があり、1.04 に戻した経緯があり、その後は、全く問題ないので、1.06 のダウンロードは見送りたいと思います。


2015-10-25追記
T510 も、まだまだ現役で利用していますが、メインマシンは W520 に変更しました。
ThinkPad W520 で SSD 2台で IRST(インテルラピッドストレージテクノロジー)RAID1
ThinkPad W520 の HDD を SSD へ引越し

2012年12月1日土曜日

中古 SSD の SecureErase

某ショップにて中古の Intel SSD 320 600G を入手しました。GB単価が安かった(約50円)ため、思わず衝動買い。

中古ということで、総書き込み量はそれなりかと思っていたのですが、初回接続時にWindows7からCrystalDiskInfoで見てみると、次のような具合でした。
注: DeLOCK 42492 という eSATA/USB3.0 両対応のケースを使ったのですが、そのケース経由だと NCQ が使えないようです。下の CentOS6 のデータは、ケースから取り出して eSATA-SATA ケーブルで接続した場合です。SATA 電源は USB から供給。DeLOCK ケースはちょっと残念。

次は、CentOS6 で起動後の smartctl および hdparm のデータです。
# uname -a
Linux xxx 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

# dmesg | egrep 'ata5|sdc'
ata5: SATA max UDMA/133 irq_stat 0x00400040, connection status changed irq 29
ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata5.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata5.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata5.00: ATA-8: INTEL SSDSA2CW600G3, 4PC10362, max UDMA/133
ata5.00: 1172123568 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata5.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata5.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata5.00: configured for UDMA/133
ata5.00: configured for UDMA/133
ata5: EH complete
sd 5:0:0:0: [sdc] 1172123568 512-byte logical blocks: (600 GB/558 GiB)
sd 5:0:0:0: [sdc] Write Protect is off
sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc:
sd 5:0:0:0: [sdc] Attached SCSI disk

# smartctl -a /dev/sdc
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.14.1.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Intel 320 Series SSDs
Device Model:     INTEL SSDSA2CW600G3
Serial Number:    CVPR??????????????
LU WWN Device Id: 5 001517 bb28?????
Firmware Version: 4PC10362
User Capacity:    600,127,266,816 bytes [600 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Fri Nov 30 22:03:19 2012 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Error SMART Thresholds Read failed: scsi error aborted command
Smartctl: SMART Read Thresholds failed.

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
     was never started.
     Auto Offline Data Collection: Disabled.
Self-test execution status:      (  17) The self-test routine was aborted by
     the host.
Total time to complete Offline 
data collection:   (    1) seconds.
Offline data collection
capabilities:     (0x75) SMART execute Offline immediate.
     No Auto Offline data collection support.
     Abort Offline collection upon new
     command.
     No Offline surface scan supported.
     Self-test supported.
     Conveyance Self-test supported.
     Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
     power-saving mode.
     Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
     General Purpose Logging supported.
Short self-test routine 
recommended polling time:   (   1) minutes.
Extended self-test routine
recommended polling time:   (   1) minutes.
Conveyance self-test routine
recommended polling time:   (   1) minutes.
SCT capabilities:         (0x003d) SCT Status supported.
     SCT Error Recovery Control supported.
     SCT Feature Control supported.
     SCT Data Table supported.

SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   ---    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   ---    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   ---    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   ---    Old_age   Always       -       1
 12 Power_Cycle_Count       0x0032   100   100   ---    Old_age   Always       -       5
170 Reserve_Block_Count     0x0033   100   100   ---    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   ---    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   ---    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0030   100   100   ---    Old_age   Offline      -       0
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   ---    Old_age   Always       -       0
192 Unsafe_Shutdown_Count   0x0032   100   100   ---    Old_age   Always       -       1
199 UDMA_CRC_Error_Count    0x0030   100   100   ---    Old_age   Offline      -       0
225 Host_Writes_32MiB       0x0032   100   100   ---    Old_age   Always       -       17887
226 Workld_Media_Wear_Indic 0x0032   100   100   ---    Old_age   Always       -       20
227 Workld_Host_Reads_Perc  0x0032   100   100   ---    Old_age   Always       -       94
228 Workload_Minutes        0x0032   100   100   ---    Old_age   Always       -       116
232 Available_Reservd_Space 0x0033   100   100   ---    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   100   100   ---    Old_age   Always       -       0
241 Host_Writes_32MiB       0x0032   100   100   ---    Old_age   Always       -       17887
242 Host_Reads_32MiB        0x0032   100   100   ---    Old_age   Always       -       3

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Note: selective self-test log revision number (0) not 1 implies that no selective self-test has ever been run
SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

# hdparm -I /dev/sdc

/dev/sdc:

ATA device, with non-removable media
 Model Number:       INTEL SSDSA2CW600G3                     
 Serial Number:      CVPR??????????????  
 Firmware Revision:  4PC10362
 Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
 Used: unknown (minor revision code 0x0029) 
 Supported: 8 7 6 5 
 Likely used: 8
Configuration:
 Logical  max current
 cylinders 16383 16383
 heads  16 16
 sectors/track 63 63
 --
 CHS current addressable sectors:   16514064
 LBA    user addressable sectors:  268435455
 LBA48  user addressable sectors: 1172123568
 Logical  Sector size:                   512 bytes
 Physical Sector size:                   512 bytes
 device size with M = 1024*1024:      572325 MBytes
 device size with M = 1000*1000:      600127 MBytes (600 GB)
 cache/buffer size  = unknown
 Nominal Media Rotation Rate: Solid State Device
Capabilities:
 LBA, IORDY(can be disabled)
 Queue depth: 32
 Standby timer values: spec'd by Standard, no device specific minimum
 R/W multiple sector transfer: Max = 16 Current = 16
 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
      Cycle time: min=120ns recommended=120ns
 PIO: pio0 pio1 pio2 pio3 pio4 
      Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
 Enabled Supported:
    * SMART feature set
      Security Mode feature set
    * Power Management feature set
    * Write cache
    * Look-ahead
    * Host Protected Area feature set
    * WRITE_BUFFER command
    * READ_BUFFER command
    * NOP cmd
    * DOWNLOAD_MICROCODE
      SET_MAX security extension
    * 48-bit Address feature set
    * Device Configuration Overlay feature set
    * Mandatory FLUSH_CACHE
    * FLUSH_CACHE_EXT
    * SMART error logging
    * SMART self-test
    * General Purpose Logging feature set
    * WRITE_{DMA|MULTIPLE}_FUA_EXT
    * 64-bit World wide name
    * IDLE_IMMEDIATE with UNLOAD
    * WRITE_UNCORRECTABLE_EXT command
    * {READ,WRITE}_DMA_EXT_GPL commands
    * Segmented DOWNLOAD_MICROCODE
    * Gen1 signaling speed (1.5Gb/s)
    * Gen2 signaling speed (3.0Gb/s)
    * Native Command Queueing (NCQ)
    * Phy event counters
      Device-initiated interface power management
    * Software settings preservation
    * SMART Command Transport (SCT) feature set
    * SCT LBA Segment Access (AC2)
    * SCT Error Recovery Control (AC3)
    * SCT Features Control (AC4)
    * SCT Data Tables (AC5)
    * Data Set Management TRIM supported
    * reserved 69[5]
    * Deterministic read after TRIM
Security: 
 Master password revision code = 65534
  supported
 not enabled
 not locked
 not frozen
 not expired: security count
  supported: enhanced erase
 2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5001517bb28?????
 NAA  : 5
 IEEE OUI : 001517
 Unique ID : bb28?????
Integrity word not set (found 0x0000, expected 0x4fa5)


おそらくは、ゼロ書き込みによるデータ消去後であろう?とは思いましたが、せっかくの機会 (中古SSDは初挑戦) なので、オールゼロになっているのか確認してみたところ、SSD 上に残っていた文字列は、次の3行のみでした。
Delete End
2012/09/21/11:46:19
某ショップの会社名
さて、それなら SecureErase を実施したほうが、性能上良いはずなので、実際やりました。
# cat /sys/block/sdc/device/model 
INTEL SSDSA2CW60

# hdparm --user-master u --security-set-pass password /dev/sdc
security_password="password"

/dev/sdc:
 Issuing SECURITY_SET_PASS command, password="password", user=user, mode=high
# hdparm --user-master u --security-erase-enhanced password /dev/sdc
security_password="password"

/dev/sdc:
 Issuing SECURITY_ERASE command, password="password", user=user
SecureErase は1分ぐらい (ちょっとよそ見している間) で終わってしまいました。

ちなみに、Win7 上の Intel SSD Toolbox も試してみたのですが、わたしの環境では、どうしても frozen 状態が解除できず、実行できませんでした。

ThinkPad T510 に eSATA 接続の環境ですが、Toolbox の指示に従って、eSATA の先の SSD 電源を落としたり、刺しなおしたりしてみましたが、ダメでした。それなのに、デュアルブートにしてある CentOS6 では、frozen にはならず、簡単に SecureErase できました。

■関連記事
SecureErase を実施してみた
SecureErase のために frozen 状態を解除する方法

2012年8月26日日曜日

SecureErase を実施してみた

こちらの記事のように、SecureErase により、不良セクタを回収して代替セクタを割り当てられるケースがあることを知りました。
そこで、
http://marosama.blogspot.jp/2010/03/linuxsecureerase.html
こちらの方の Linux で SecureErase を実施する手順を参考に、わたしもやってみた次第です。
昔、RAID1 を組んでいた IDE HDD 2台のうちの片方が異常になり、別の HDD に移行したことがあったのですが、その時の HDD 2台を死蔵しておりましたので、今回はその 2台に対して SecureErase を試しました。

最初に作業機材について、まとめますと、
・ThinkPad T510 OS:CentOS 6.3 x86_64
・センチュリー社
 NEW 裸族のお立ち台 USB3.0 & eSATA
 裸族のお立ち台のお立ち台 IDE to SATA 変換アダプター
という構成です。T510 の左側面標準装備の eSATA 接続で実施しました。

作業手順はもとの記事のほうに詳しく書いてありますが、いちおうわたしの行った手順を要約しますと、次のような具合です。
# cat /sys/block/sdXX/device/model  等により実施対象の sdXX を確認
                 ディスクが複数接続された環境での作業では十分注意必要
# hdparm -I /dev/sdXX で not frozen 確認
# hdparm --user-master u --security-set-pass password /dev/sdXX でパスワード設定
# hdparm --user-master u --security-erase password /dev/sdXX

作業を行った2台のHDDのうち、1台は不良セクタがあったのですが、SecureErase により除去できたようでした。まあ、今や時代遅れで使い道がほとんどないのですが。


この2枚は、作業完了後に Windows 上から HDDSCAN を行った結果です。
アクセス時間が遅い部分があり、まだら状になっているほう(上)が、RAID1 から外れたディスクだったと思います。

2012-08-29追記


CrystalDiskInfo のデータです。2番目のディスクのほうが注意になってます。
(補足:画像の掲載順序が逆なわけではないです)

2012-09-02追記
さらに別のディスクのデータです。このように、不良セクタが生じていましたが、、、
SecureErase 後には、ひとまず不良セクタが消えました。

掲載したのは、SecureErase が功を奏したデータばかりですが、もちろんのこと、ダメ(無理)だった HDD もありました。手持ち7台のうち2台は無理でした。

なお、壊れたと思っていた SSD にも SecureErase を実行してみたところ、不良部分が無くなりました。次の記事を参照ください。
ThinkPad X300 のSSDで不良セクタを発見

2012-09-29追記
クセになり、また別の死蔵ディスクもやってみました。少なくとも5年ぶりに動かしたところ、不良セクタが生じていましたが、、、
SecureErase 後には、不良部分が解消しました。

2010年11月30日火曜日

ThinkPad X300 のSSDで不良セクタを発見

ThinkPad X300 の内臓SSD(SAMSUNG SLCタイプ MCCOE64G8MPP-0VA 約2年使用)に不良セクタが出来てしまい。参考にデータを、ThinkPad Club の方にレポートしたのですが、ここでは、Linux (Parted MagicのブータブルCDを利用) で ddrescue と dd を使って、書き戻してみた結果を書いておきます。 書き戻しにより、代替セクタが利用されて、もうしばらく使えないかなと思ったのですが・・・

まずは、ddrescueの出力を示します。USB-HDD へ丸ごとコピーしました。
root@PartedMagic:/mnt_sdb1# ddrescue -dS /dev/sda sda.ddrescue-2010-11-20 ddrescue-2010-11-20.log


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:    64022 MB,  errsize:    268 kB,  current rate:        0 B/s
   ipos:    55255 MB,   errors:      91,    average rate:    6813 kB/s
   opos:    55255 MB,     time from last successful read:       2 s
Finished                   
root@PartedMagic:/mnt_sdb1# 
以下は、ddrescue のログです。見方はソースをほじくらないと正確には分かりませんが。
# Rescue Logfile. Created by GNU ddrescue version 1.13
# Command line: ddrescue -dS /dev/sda sda.ddrescue-2010-11-20 ddrescue-2010-11-20.log
# current_pos  current_status
0xCDD837C00     +
#      pos        size  status
0x00000000  0x33830200  +
0x33830200  0x00000200  -
0x33830400  0x00003C00  +
0x33834000  0x00004000  -
0x33838000  0x03FF8200  +
0x37830200  0x00000200  -
0x37830400  0x00003C00  +
0x37834000  0x00004000  -
0x37838000  0x27FE8200  +
0x5F820200  0x00000200  -
0x5F820400  0x00003C00  +
0x5F824000  0x00000200  -
0x5F824200  0x00000600  +
0x5F824800  0x00000200  -
0x5F824A00  0x00000600  +
0x5F825000  0x00000200  -
0x5F825200  0x00000600  +
0x5F825800  0x00000200  -
0x5F825A00  0x00000600  +
0x5F826000  0x00000200  -
0x5F826200  0x00000600  +
0x5F826800  0x00000200  -
0x5F826A00  0x00000600  +
0x5F827000  0x00000200  -
0x5F827200  0x00000600  +
0x5F827800  0x00000200  -
0x5F827A00  0x0000C600  +
0x5F834000  0x00000200  -
0x5F834200  0x00000600  +
0x5F834800  0x00000200  -
0x5F834A00  0x00000600  +
0x5F835000  0x00000200  -
0x5F835200  0x00000600  +
0x5F835800  0x00000200  -
0x5F835A00  0x00000600  +
0x5F836000  0x00000200  -
0x5F836200  0x00000600  +
0x5F836800  0x00000200  -
0x5F836A00  0x00000600  +
0x5F837000  0x00000200  -
0x5F837200  0x00000600  +
0x5F837800  0x00000200  -
0x5F837A00  0x9FFE8800  +
0xFF820200  0x00000200  -
0xFF820400  0x00003C00  +
0xFF824000  0x00004000  -
0xFF828000  0x0000C000  +
0xFF834000  0x00004000  -
0xFF838000  0xF9FE8200  +
0x1F9820200  0x00000200  -
0x1F9820400  0x00003C00  +
0x1F9824000  0x00004000  -
0x1F9828000  0x0000C000  +
0x1F9834000  0x00004000  -
0x1F9838000  0xFBFE8200  +
0x2F5820200  0x00000200  -
0x2F5820400  0x00003C00  +
0x2F5824000  0x00004000  -
0x2F5828000  0x0000C000  +
0x2F5834000  0x00004000  -
0x2F5838000  0x261FF8200  +
0x557830200  0x00000200  -
0x557830400  0x00003C00  +
0x557834000  0x00004000  -
0x557838000  0xDDFE8200  +
0x635820200  0x00000200  -
0x635820400  0x00003C00  +
0x635824000  0x00000200  -
0x635824200  0x00000600  +
0x635824800  0x00000200  -
0x635824A00  0x00000600  +
0x635825000  0x00000200  -
0x635825200  0x00000600  +
0x635825800  0x00000200  -
0x635825A00  0x00000600  +
0x635826000  0x00000200  -
0x635826200  0x00000600  +
0x635826800  0x00000200  -
0x635826A00  0x00000600  +
0x635827000  0x00000200  -
0x635827200  0x00000600  +
0x635827800  0x00000200  -
0x635827A00  0x0000C600  +
0x635834000  0x00000200  -
0x635834200  0x00000600  +
0x635834800  0x00000200  -
0x635834A00  0x00000600  +
0x635835000  0x00000200  -
0x635835200  0x00000600  +
0x635835800  0x00000200  -
0x635835A00  0x00000600  +
0x635836000  0x00000200  -
0x635836200  0x00000600  +
0x635836800  0x00000200  -
0x635836A00  0x00000600  +
0x635837000  0x00000200  -
0x635837200  0x00000600  +
0x635837800  0x00000200  -
0x635837A00  0x155FE8800  +
0x78B820200  0x00000200  -
0x78B820400  0x00003C00  +
0x78B824000  0x00000200  -
0x78B824200  0x00000600  +
0x78B824800  0x00000200  -
0x78B824A00  0x00000600  +
0x78B825000  0x00000200  -
0x78B825200  0x00000600  +
0x78B825800  0x00000200  -
0x78B825A00  0x00000600  +
0x78B826000  0x00000200  -
0x78B826200  0x00000600  +
0x78B826800  0x00000200  -
0x78B826A00  0x00000600  +
0x78B827000  0x00000200  -
0x78B827200  0x00000600  +
0x78B827800  0x00000200  -
0x78B827A00  0x0000C600  +
0x78B834000  0x00000200  -
0x78B834200  0x00000600  +
0x78B834800  0x00000200  -
0x78B834A00  0x00000600  +
0x78B835000  0x00000200  -
0x78B835200  0x00000600  +
0x78B835800  0x00000200  -
0x78B835A00  0x00000600  +
0x78B836000  0x00000200  -
0x78B836200  0x00000600  +
0x78B836800  0x00000200  -
0x78B836A00  0x00000600  +
0x78B837000  0x00000200  -
0x78B837200  0x00000600  +
0x78B837800  0x00000200  -
0x78B837A00  0x1E9FE8800  +
0x975820200  0x00000200  -
0x975820400  0x00003C00  +
0x975824000  0x00000200  -
0x975824200  0x00000600  +
0x975824800  0x00000200  -
0x975824A00  0x00000600  +
0x975825000  0x00000200  -
0x975825200  0x00000600  +
0x975825800  0x00000200  -
0x975825A00  0x00000600  +
0x975826000  0x00000200  -
0x975826200  0x00000600  +
0x975826800  0x00000200  -
0x975826A00  0x00000600  +
0x975827000  0x00000200  -
0x975827200  0x00000600  +
0x975827800  0x00000200  -
0x975827A00  0x0000C600  +
0x975834000  0x00000200  -
0x975834200  0x00000600  +
0x975834800  0x00000200  -
0x975834A00  0x00000600  +
0x975835000  0x00000200  -
0x975835200  0x00000600  +
0x975835800  0x00000200  -
0x975835A00  0x00000600  +
0x975836000  0x00000200  -
0x975836200  0x00000600  +
0x975836800  0x00000200  -
0x975836A00  0x00000600  +
0x975837000  0x00000200  -
0x975837200  0x00000600  +
0x975837800  0x00000200  -
0x975837A00  0x1D7FE8800  +
0xB4D820200  0x00000200  -
0xB4D820400  0x00003C00  +
0xB4D824000  0x00004000  -
0xB4D828000  0x0000C000  +
0xB4D834000  0x00004000  -
0xB4D838000  0x11BFF8200  +
0xC69830200  0x00000200  -
0xC69830400  0x00003C00  +
0xC69834000  0x00004000  -
0xC69838000  0x73FE8200  +
0xCDD820200  0x00000200  -
0xCDD820400  0x00003C00  +
0xCDD824000  0x00004000  -
0xCDD828000  0x0000C000  +
0xCDD834000  0x00004000  -
0xCDD838000  0x20A91E000  +
このようにエラーのオンパレードです。
そして書き戻しのログです。
root@PartedMagic:/mnt_sdb1# dd if=sda.ddrescue-2010-11-20 bs=4096 of=/dev/sda oflag=direct,dsync
15630678+0 records in
15630678+0 records out
64023257088 bytes (64 GB) copied, 14007.1 s, 4.6 MB/s
root@PartedMagic:/mnt_sdb1# 
書き戻しの際にはエラーは出ませんでした。
その後、Windows XP を起動して、chkdsk をやったのですが、まったく効果なしで虫食い状態でした。以上の試行から悟ったことは、、、恐ろしいことですが、書き込みではエラーが出ず、読み込みでエラーになるということです。つまり、しっかり保存したつもりが、実際にはデータ損失してしまう場合がある状態になってしまっている。ということです。

2010-12-01追記
もう一つ気がついたのでメモ。HDD の不良セクタとの違いにも注意する必要がありそうです。SSDの場合には、ウェアレベリングの負の作用なのか、不良部分の場所が揺れるので、何回 CHKDSK /R をやっても、不良セクタをファイルシステムから除外できないようです。
(もっとも、このあたりは SSD のベンダーにより制御が違うだろうと思いますが)

HDD の不良セクタなら、ファイルシステムの不良セクタリストに登録されて、そのセクタへアクセスしないようになります。
(これもファイルシステム次第でしょうが、ext2/3/4, ntfs はそのはず)

2012-09-02追記
SecureErase という操作のことを知り、死蔵していたこの記事の SSD にも適用してみたら、見かけ上かもしれませんが、不良部分が消えました!
SecureErase 実行前は、次のような状態でした。HDDSCAN の結果です。

そして、SecureErase 後がこちらです。

実験も兼ねて、この SSD を、ZFS の L2ARC 用として、再利用開始しました。
L2ARC というのはセカンドキャッシュであり、ZFS では全てのブロックがチェックサム確認されるので、もし壊れたキャッシュを読んだり、I/O エラーとなったとしても、その後の迂回処理で、ストレージプール (HDD 集合の管理単位) から読まれるはずです。なお、用心のため、この SSD を L2ARC として接続したのは、最悪は壊れてしまってもかまわないもの (CentOS や Fedora の ISO イメージ) が入っている領域です。
人気ブログランキングへ にほんブログ村 IT技術ブログへ