現在発売中の YAMAHAのルーターには、全て microSDカードスロットと USBポートが搭載されている。複数 Configを格納して用途に応じて切り替えたり、長期間の syslogを保存したりと便利この上ない機能。
がしかし、逆にこれが悪さをした時が過去にあった。
ある日、configの設定を若干変えて、USBメモリに設定保存。装着した USBメモリから起動させようとしたところ、電源が入っているのにも関わらず、WAN側への接続が出来なくなった。接続に関わる部分の設定は変えてなかったことから、そろそろ RTX1200本体の寿命が来たかと少しばかり青い顔をしつつ、何度か再起動させてみたり・・・・。
原因は USBメモリの寿命?であった。
USBメモリやSDカードなど、「Flash Memory、Flash ROM、EEPROM」と呼ばれるもは寿命があるらしい、それも結構な短さ。転送速度も色々。
さて、外部メモリとして使用に耐え得るか否か。YAMAHAのルーターにはそれを調査するコマンドが用意されている。
手持ちのいくつかのフラッシュメモリにこのコマンドを当ててみた。
外部メモリ性能測定 external-memory performance-test go interface ※interface:usb1もしくはsd1
外部メモリの動作状態を表示 show status external-memory
<測定するメモリの準備>
SDカード、USBメモリに使われる Flash ROMの記憶素子には SLC、MLC、TLCの 3種類あり、SLCより容量を増やしやすい MLCやより安価に製造可能な TLCが主流となりつつあるようだ。10倍寿命が長い製品よりも、2倍の容量をもつ製品の方が売りやすく、コンシューマー的には喜ばれるからであろう。
寿命に関わりのあるセルあたりの書き換え可能回数の目安は、
- SLC:100,000回
- MLC:10,000回
- TLC:1,000回
ただし、メモリーコントローラで寿命を延ばす工夫がなされていて、セルとコントローラを組み合わせた状態での信頼性は、目安通りにはならない。
とは言え、こうしてみると、心情的にはTLCよりはMLC、MLCよりはSLCを選びたくなる・・・・。
最近では容量優先の為か、SLCがほぼ姿を消しつつある。また、前モデルが MLCであっても、モデルチェンジによりいつの間にか TLCになっていた・・・などと言う話も聞く。
写真は、写真撮影した画像の持ち運びに僕がよく使う MLC型の携帯メモリ。USBメモリのパッケージには MLCと明確に表記されている。
こちらは既に生産完了となっているUSBメモリ。どんなセルが使われているかは不明。スティック型ではないため、ルーターに装着しても突起物となりにくい形状。そんなことから、以前はよく使っていた。
メモリ性能測定>
- microSDカードは”SDアソシエーション”のSD/SDHC/SDXC用SDフォーマッター4.0を用い、クイックフォーマットした
- USBメモリは、Windows7を用い、FAT32でフォーマットした
- 各メモリとも 3回測定し、一度でも NGが出た場合はそのデータを記載
記号 | インターフェース | メーカー | 型式 | 容量 |
A | SDHC/SDXC | SunDisk | SDSDXL-016G-JU3 | 16GB |
B | USB3.0/USB2.0 | Transcend | TS32GJF750K | 32GB |
C | USB2.0 | Transcend | TS8GJFV10 | 8GB |
D | USB2.0 | Sony | USM8SA1 | 8GB |
E | USB2.0 | Sony | USM8GM | 8GB |
F | USB2.0(SDHC) | Buffalo | RUF2-PS8G-BK | 8GB |
記号 | device attach | write/read | syslog | 結果 |
A | 900ms | 1139ms, 263ms, 236ms | write:22136ms, read:973ms | succeeded. |
B | 1100ms | 5877ms, 202ms, 231ms | write:22138ms, read:748m | succeeded. |
C | 900ms | 3586ms, 241ms, 233ms | write:22134ms, read:967ms | succeeded. |
D | 900ms | 5493ms, 1892ms, 244ms | write:22135ms, read:994ms | succeeded. |
E | 1300ms | 4863ms, 1045ms, 224ms | write:22137ms, read:849ms | succeeded. |
F | 1500ms | 6573ms, 904ms, 312ms | file read failed | failed. |
記号 | device attach | write/read | syslog | 結果 |
A | 1100ms | 14749ms, 2583ms, 434ms | write:25273ms, read:1409ms | succeeded. |
B | 1101ms | 11484ms, 5835ms, 421ms | write:25330ms, read:1438ms | succeeded. |
C | 1000ms | 17712ms, 2553ms, 433ms | file read failed | failed.. |
D | 900ms | 11141ms, 3644ms, 441ms | write:25275ms, read:1716ms | succeeded. |
E | 1300ms | 13701ms, 3803ms, 448ms | file read failed | failed. |
F | 1500ms | 446111ms, -, – | failed. |
サンプル数が少なく、はっきりとは言えないがルーターの性能測定コマンドはかなり厳しい。上の結果で[failed.]となっていても、PC上からは問題無く Fileの書込・削除は出来る。また、ルーターの外部メモリとして使用し、そこからの起動や syslogの書込みも、とりあえず出来てしまう。
24時間365日、場合によっては数年間継続動作させるルーターにとってはこの位厳しい測定テストをクリアしないと、安心は出来ないと言うことなのだろう。
なお、結果が[failed.]となったメモリは昨年末に秋葉原で投げ売りされてたもの。1本、500円もしなかった記憶がある。全て生産完了品。製造されてからある程度の月日が経っている製品であることから、経年劣化が原因の可能性がある。
また、RTX1200で[failed.]となったメモリがRTX1210で測定すると問題無しとの判定結果が出ているものがある。RTX1210になって、USBホストコントローラが変更されたのだろうか?(謎)
とりあえず、ルーターの外部メモリとして使用するのであれば、生産終了品や格安ジャンク品は避けた方がよろしいかと、、
[failed.]とならない程度の品質を持った中堅どころのメモリを1~2年程度で交換しながら使うか、長寿命の SLCや MLCセルを使った若干高価なメモリを長期間使うか悩むところであるが、モノグサな自分は後者で逝くつもりです。
それと、USBメモリは刺すと突き出るので、syslogやらfirmware、configは基本的にmicroSDカード利用がよろしいかと、、