start

3月末にeBayで注文したブツがやっと届いた

3月末にeBayで注文したPCパーツが2ヵ月ちょい掛かって、ようやく6/16に届いた。キャリアは4PXだった。

購入時点での配達予定は4/21~6/9で、結果的に予定日を少々オーバーしたものの、この新型コロナ騒動下において無事届いただけでも御の字。6/9には国内に入ってて一応期日は守ってるし、ある意味で優秀なスケジューリング&荷捌きと言えるかも?

4PXの追跡はこんな感じ。

日時 場所 内容
2020-03-27 08:42 Longhua,Shenzhen,China
(中国/深圳/龍華)
4PX picked up shipment.
(4PXが集荷)
2020-03-27 08:42 Longhua,Shenzhen,China
(中国/深圳/龍華)
Shipment arrived at facility and measured.
(荷物が施設に到着し採寸)
2020-03-29 10:43 Shenzhen,China
(中国深圳)
Depart from facility to service provider.
(施設からサービス業者に向けて出発)
2020-03-29 11:15 Information Received. (荷物情報受取)
2020-03-29 23:30 HK (香港) Hand over to airline. (航空会社に引き渡し)
2020-06-05 11:50JPKWS (日本/川崎) Despatched to overseas. (海外へ配送)
2020-06-09 18:44 Arrival at Destination. (目的地に到着)
2020-06-14 04:50 Arrival at Processing Center. (処理場に到着)
2020-06-14 08:59 Held by Customs at Destination. (通関手続き)
2020-06-15 00:59 Transit to Destination Processing Facility.
(目的地の処理施設に輸送)
2020-06-15 11:22 Receive item at delivery office. (集配局で荷物を受領)
2020-06-16 09:00 Delivery failed. (配達できなかった)
2020-06-16 09:00 Send item out for physical delivery. (配達のため持ち出し)
2020-06-17 03:43 Receive item at delivery office. (集配局で荷物を受領)
2020-06-17 09:18 Send item out for physical delivery. (配達のため持ち出し)
2020-06-17 13:42 Delivery failed. (配達できなかった)
2020-06-19 08:49 Send item out for physical delivery. (配達のため持ち出し)
2020-06-19 10:42 Item delivered. (配達済み)

日本に着いてからの追跡はこんな感じ。

状態発生日
(日時は現地時間)
配送履歴 取扱局 県名・国名
2020/06/05 11:50 国際交換局から発送 SSINGAPORE 06 SINGAPORE
2020/06/14 04:50 国際交換局に到着 219-8799 川崎東郵便局 神奈川県
2020/06/14 09:00 通関手続中 219-8799 川崎東郵便局 神奈川県
2020/06/15 01:00 国際交換局から発送 219-8799 川崎東郵便局 神奈川県
2020/06/15 11:22 到着 東京のどこか 東京都
2020/06/16 転送 東京のどこか 東京都
2020/06/17 03:43 到着 東京のどこか 東京都
2020/06/17 ご不在のため持ち戻り 東京のどこか 東京都
2020/06/19 配達希望受付 インターネット・IVR
2020/06/19 お届け済み 東京のどこか 東京都

Transcend TS32GMTS400 32GBのベンチマーク

ルータ用にと思って買った小型PCに、トランセンドのM.2 Type 2242なSSD MTS400シリーズの32GB、T32GMTS400が入っていたのでベンチなんぞを取ってみる。公式サイトによると、32GB版のスペックは読み込み200MB/s、書き込み40MB/s、90TBWの2DWPD(3年)となっている。

ディスクの状態は↓こんな感じ。新品で買ったPCの割に電源投入回数と書き込み量が多いような…。

ベンチは↓な感じ。

------------------------------------------------------------------------------
CrystalDiskMark 7.0.0 x64 (C) 2007-2019 hiyohiyo
                                  Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
Sequential 1MiB (Q=  8, T= 1):   279.169 MB/s [    266.2 IOPS] < 29939.73 us>
Sequential 1MiB (Q=  1, T= 1):   268.454 MB/s [    256.0 IOPS] <  3902.29 us>
    Random 4KiB (Q= 32, T=16):   107.224 MB/s [  26177.7 IOPS] < 19488.81 us>
    Random 4KiB (Q=  1, T= 1):    28.066 MB/s [   6852.1 IOPS] <   145.41 us>

[Write]
Sequential 1MiB (Q=  8, T= 1):    53.481 MB/s [     51.0 IOPS] <153808.46 us>
Sequential 1MiB (Q=  1, T= 1):    53.065 MB/s [     50.6 IOPS] < 19666.44 us>
    Random 4KiB (Q= 32, T=16):    53.459 MB/s [  13051.5 IOPS] < 39015.26 us>
    Random 4KiB (Q=  1, T= 1):    52.687 MB/s [  12863.0 IOPS] <    77.35 us>

Profile: Default
   Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED>
   Date: 2020/04/12 13:20:08
     OS: Windows 10 Professional [10.0 Build 16299] (x64)
Comment: Transcend TS32GMTS400

カタログスペック以上の速度は出ているが、最初期のコンシューマ向けSSDと比べても遅めですな…。128GB版でも書き込み160MB/s程度っぽいので、このシリーズはこんなものなのだろう。

FreeBSDのL2ブリッジ(if_bridge)は本当に遅かった

FreeBSDでL2ブリッジを有効にするとネットワーク性能が激烈に落ちるという話がある。なんでも、ブリッジの実装であるif_bridge(4)に存在するたくさんの最適化されてないロックのせいで性能劣化を引き起こしてるとか。

いやいや、いくら何でもそんなに変わらんやろ?と思い、ブリッジの有無でiperfしてみたら、ブリッジ有りの方でありえないほど遅くなって草も生えないんですが。

測定環境は下表の通り。ネットワークまわりのチューニングとかは特にしてない。

サーバ クライアント
OS FreeBSD 12.0-RELEASE-p4 amd64 Windows 10 Pro 1903 x64
CPU Xeon E5-2648Lv3 Ryzen 1700
NIC ConnectX-3 Pro EN (L2SW経由で40Gb接続)
ソフト iperf 2.0.13 iperf 2.0.14a

ご覧の通り、現状のif_bridgeは1GbEには十分だけど、10GbE以上の環境では完全ボトルネックとなってしまう。bhyve使うときに割と困るぞこれ…。



いつのまにかZoLとOpenZFSが統合されてた&永続的L2ARCが来るっぽい

2020年12月1日、ZoLベースとなるOpenZFS 2.0が無事にリリースされた

ZFSのLinux向け実装であり今やZFS開発のメインストリームであるZFS on Linux (ZoL)が、いつの間にかOpenZFSと統合されていた。実際のところ、統合というよりはOpenZFSがZoLベースで仕切り直され、ZoLがOpenZFSに名前を変えたという感じのようだ。

経緯はともかく、既にZoLのGitHubはOpenZFSのリポジトリへとリダイレクトされるようになっている。で、2020年、すなわち今年にはZoL 0.8をベースとしたOpenZFS 2.0がLinuxとFreeBSD向けにリリース見込みとなっている。この辺のロードマップはOpenZFS Developer Summitでの発表資料(PDF)に詳しい。

また、そう遠くない未来に永続的L2ARC (Persistent L2ARC。界隈ではpL2ARCと表記されている)が取り込まれるようだ。

ZFSerにはご存じのとおり、L2ARCはSSDなどの高速ストレージを使ったZFSの読み込みキャッシュの仕組みである。必要な時に後から有効化できたり、不要になったらいつでも無効化できたりと、簡単便利な仕組みだが、システムの再起動でキャッシュ内容が失われてしまう欠点がある。正確には、キャッシュデータはストレージ上に残っているものの、メインメモリのキャッシュ管理データが消えてしまうため、現状のL2ARCは事実上の揮発性キャッシュとなっている。

pL2ARCでは、その名前のとおりシステムを再起動しても以前のキャッシュが維持されるようになる。ちなみに、L2ARCの管理データは無視するには大きすぎるサイズとなる。あまり巨大なL2ARCを作ると管理データがメモリを圧迫し、L2じゃない方のARCが減るという本末転倒な事態に陥るので注意が必要。

pL2ARCの構想自体は旧OpenZFSのロードマップにも存在していた。2015年にillumos向け実装の移植が試みられていたようだが、結局実現はしなかった。ところが最近になって、これまたZoLパワーでもって急速に開発が進められている。現時点でOpenZFS 2.0リリース予定には組み込まれていないものの、既にプルリクが作られており近々masterに取り込まれそうな勢いである。Linuxパワーしゅごい……。

記憶域のNTFSはアロケーションユニットサイズ大きめで作成する

Windowsの記憶域プール上にNTFSの仮想ボリュームを作る時は、NTFSのアロケーションユニットサイズ(クラスタサイズ)をよーく考える事。思わぬところでNTFSの最大容量制限に引っかかることになる。

NTFSでは1ボリュームあたりのクラスタ数は2^64-1個が上限となっている。つまり、ボリュームの最大容量はクラスタサイズで決まる(最大容量=クラスタサイズ×最大クラスタ数)。アロケーションユニットサイズと最大容量の関係は下表となる。

クラスタサイズ 最大ボリュームサイズ
4KB 16TB
8KB 32TB
16KB 64TB
32KB 128TB
64KB 256TB

(2020/12/01 追記)

家のWindows 10マシンで確認したところ、いつの間にかアロケーションユニットサイズとして128KB~2MBが追加されていた。Windows Serverでは2019で対応したっぽい。追加分は下表のとおり。

クラスタサイズ 最大ボリュームサイズ
128KB 512TB
256KB 1PB
512KB 2PB
1MB 4PB
2MB 8PB

これだけ拡張されればNTFSもまだまだ行けるね!

2020-02-18現在、デフォルトクラスタサイズは昔から変わらず4KBのため、NTFSの1ボリューム≒1パーティションの最大サイズは16TBとなる。言うまでもないが、クラスタサイズを後から変更するのは無理。

一般的な使い方なら4KBでも十分だろうけど、容量拡張が容易な記憶域プールの場合、いとも簡単にこの最大ボリュームサイズ制限に引っかかってしまう。仮想ディスク上のNTFSボリュームを拡張すべく記憶域プールの容量を増やし、仮想ディスクを拡張し、いよいよNTFSパーティションを拡張だぜ!って段階で16TB制限に遭遇することとなり、マジ真顔状態となる。ありえねーよほんと……

16TBのHDDがふつーに変えてしまう昨今、やろうと思えばその辺のマザボですら16TB×8本で128TBの記憶域プールが作れてしまう。そう考えると、記憶域プール上のNTFSのクラスタサイズは64KB、と脳死対応をしてしまっていいのかも。あるいはNTFSを捨ててReFSに行ってしまうか。アロケーションユニットサイズは、ボリュームにおけるデータの最小管理単位なので、無暗に大きくすると無駄が多く発生する可能性もあって悩ましいところ。

あー、10TBのデータをバックアップから復元するのめんどくせー。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo