月別アーカイブ: 2024年6月

39号機稼働開始(34号機更改リプレース)

24、25号機に続き、34号機も更改しました。39号機となりました。

34号機は紹介のページにもありますが、先代の34号機は元々建造計画がなく、障害対応として急造したマシンです。予算も無かったので暫定構成と割り切り、ケース以外は寄せ集めのパーツで建造しました。暫定と言う割にはどこぞの某元暫定CEO(故人)の如く3年以上運用していましたが、建造当初から更改なりリプレースなりの時期だけは決めていたマシンです。

39号機は37、38号機の異母兄弟機みたいな構成で、ケースとSSDは異なりますが、マザーボード、メモリは同一という構成です。

ケース・電源

ケースはSilverstoneのSST-SG13Bです。

先代の34号機のLian-Li PC-Q21のフォルムは結構気に入っていたのですが、PC-Q21は耐タンパ性がゼロなのが課題でした。色々考えましたが、買い換えたほうが安いのでSST-SG13Bにしました。

SST-SG13Bが高耐タンパかと言うと微妙ですが、ロックされたSST-SG13Bは、ノーガードに近くてツールレスでSSDを持っていけるPC-Q21に比べれば面倒です。

曲がりなりにもケースをロック出来て、PCI/PCIeカードが付けられる小型ケースは少なく、(19号機で採用している)SST-SG05BとSST-SG13Bとその後継機しかありませんでした。19号機と全く同じケースを約15年も経ってまた買うのも芸がありませんし、SST-SG16などは交流電源専用みたいな構成で、ACアダプタ運用がしにくいと感じたので、SST-SG13Bとなりました。

SST-SG13BはATX電源ですが、搭載しているN100DC-ITXはACアダプタ直結なのでそのままだと電源部が開口します。それはまずいのでM8のDCジャックが入るホールが付いた、アルミ製のグリルパネルを入れてあります。この手のDCジャックを取り付けできるパネルは、昔ならOliospecで買えたのですが、今はOliospecでは売ってないので海外から通販で買いました。

電源は37・38号機と同じGST90A19-P1Mです。

先代の34号機は秋月で売ってたGo Forward (GF)社製のGF65I-US1934という19V 3.4Aの65W電源を使っていました。秋月のGF社製の電源はまぁまぁ静かで可もなく不可もなくという感じですが、秋月のDC電源のバレルプラグは殆どが2.1/5.5mmなのでそのままでは2.5mm/5.5mmのバレルジャックでは挿さりません。なので変換アダプタを咬ませていましたが、この変換アダプタが地味に鬱陶しいので37号機や38号機と構成を合わせる形にしました。

ケースは異なりますが37号機、38号機同様ゼロスピンドルのファンレス機です。

マザーボード・メモリ

マザーボードとメモリは37、38号機と全く同じです。N100DC-ITXにCFD Crucialの32GBが入ってます。32GBは用途的には過剰ですが、メモリとしては予算内だったで37号機や38号機と合わせてあります。

CFD Crucialの32GBは37号機や38号機と同じもので、2枚セットの片割れを使っているのも同じです。39号機のもう片割れは予備のマザーボードに実装しています。

SSD

SSDはTeam CX2 256GBの1台構成です。

39号機はデータ(所謂ユーザデータ)をほとんど持っていません。そのため耐久性はあまり考慮せず安価なSSDを採用しています。37号機や38号機はシステム用とデータ用(/home用)の2台のSSDを積んでますが、39号機はシステム用とデータ用のSSDを分けていないので1台構成です。

39号機は元を辿るとCentOS5で運用していた14号機から派生したマシンで、その派生機・後継機である29-30-34号機ではCentOS7が入ってました。そのためその後継の39号機でもRed Hat Enterprise Linux(RHEL)系統のOSであるRocky Linuxを入れています。

RHEL系はOSのメジャーアップグレードが難しく、メジャーアップグレードは事実上SSDを入れ替えて新規インストールでしか対応できません。そのため交換を見据えてSSDは安いものにしました。また、39号機はVPNルータ専用機で他の用途を兼任させるつもりが無いので250GBもあれば必要十分です。先代の34号機も2020年新造ですが、SSDは当時にしてすでに8年落ちの2012年製のIntel 320 シリーズのSSD入れてましたしね。どうでもいいですが、このIntel 320シリーズは160GB、300GB、600GBという今にしてみれば結構珍しいラインナップです(参考リンク)。

OS

OSは前述の通り、Rocky Linux 9.4です。最近はRHELでも個人用途なら16本ぐらいならタダで使用可能です。そのためRHELも少し考えましたが、ライセンス管理が面倒なのでやめました。まぁ正確に言うと管理が面倒というより、管理するものをあまり増やしたく無いのでフリーのRocky Linuxにしました。Alma Linuxと悩みましたが、Alma Linuxは実家の28号機に入れることにしました。

このマシンはOpenVPNとNTPしか動かさないので最小インストールにして、EPELリポジトリからdnfでOpenVPNを入れました。

RHEL8系は知りませんが、RHEL9系のEPELのOpenVPNの設定は/etc配下がserver(/etc/openvpn/server)とclient(/etc/openvpn/client)に分かれています。systemctlで呼ばれるUnit名で、設定ファイルを探すディレクトリが変わります。

openvpn-server@hogehoge.serviceでサービス起動すると、/server(/etc/openvpn/server)の設定ファイル(ここではhogehoge.conf)が読まれ、openvpn-server@hugafuga.clientでサービス起動すると、client(/etc/openvpn/client)側の設定ファイル(ここではfugafuga.conf)が読まれます。

例えば、systemctl openvpn.server@y17でOpenVPNを起動すると、/etc/openvpn/server/y17.confを探しに行くようになってます。同様にsystemctl openvpn-client@y17でOpenVPNを起動すると、/etc/openvpn/client/y17.confを探します。

まぁ、openvpn-server@.serviceで起動しても、openvpn-client@.serviceで起動してても、どちらもUnitファイル内のExecStartでは(引数は若干違うものの)同じ /usr/sbin/openvpn が呼ばれています。なので、実際のOpenVPNの動作(クライアント動作かサーバ動作か)に関わらずをどっちにどっちを入れても動くは動きます。実際、39号機は28号機に繋ぎにいくクライアントモード(tcp-client)で動作していますが、設定ファイルは/etc/openvpn/server/に放り込んであります。

と、言うか、サーバとして動作する設定を/etc/openvpn/server/に入れてopenvpn-serverで起動したからといって、firewallやsemanageをいい感じにやってくれたりすることは一切ありません。なので、個人用なら好きな方に入れてくださいって感じがします。

ちなみに、Alma Linux 9.4のEPELでも同じように分かれています。

NIC

このマシンはPCIeスロットにNICを増設しています。増設NICを刺すために37号機や38号機とは異なったケースを採用しています。

NICはtp-linkのREALTEKチップのやつです。所謂蟹チップです。ギガ蟹です。このNICでNTTのNGN(IPoE)のIPv6網に接続して、実家とLayer 3 VPNを組んでいます。

ギガ蟹使ってるのは消費電力・発熱の問題もありますが、正直蟹でも十分なので蟹にしています。まぁ、蟹がいいと言うより、(私の場合は)Intelに値段なりの価値を見出せなかったというのが正しいです。Intelは良いかもしれませんが、(自宅のブロバン環境がクソなのもあって)私はRealtekで特に困っていません。

蟹NICは上級者には割と不評なんですが、最近のギガ蟹なら殊更に不安定や遅いとかはまずありません。ただ、Realtekのドライバはハズレも有り、ハズレ具合によっては速度以前に動作が不安定だったりします。今時のRealtekのドライバはOSで標準で添付されてたりしますが、特にFreeBSD添付のものはクソでしたね。

あと、RTL8111系やRTL8168系のチップはRHEL7系とかだと何故かRTL8169系のドライバが入ることがあります(参考リンク)。何故かRTL8169系でも8111や8168がそれっぽく動くんですが気持ち悪いです。またドライバが良くても各種オフロード系(gsoやgro等)を正しいチューニングしないとまともに速度出ないことがあります。難しいと言えば難しいチップです。

この辺を勘案すると、上級者に不評な蟹NICですが、運用は自体は上級者向けですね。値段は素人さん向けなんですが、素人さんはポン付けでもまぁまぁ動くIntel製を買われた方が(個人的には)無難だと思います。まぁそういってもIntel製のNICは量販店とかになかなか売ってないんですけどね。

ちなみに、M.2 E Key (iCNV Wi-Fi用のM.2はEキー)から有線Ethernetを生やす怪しいNICを買ったのですが、MACからして怪しかったので使うのをやめました。

チューニング

37号機や38号機同様、電力設定はチューニングしています。チューニングは37号機と同じでPL1=10W, PL2=25W Autoから、PL1=6W, PL2=10W 10sにしています。この状態で44℃前後です。

39号機はファンレスですがケースがスカスカでガバガバなためデフォルトでも実は大きな問題はありません。デフォルトでも温度的には全然問題ないのですが、N100DC-ITXはコイル鳴きが結構喧しく、スカスカガバガバなケースではコイル鳴きの音が結構よく通ります。

コイル鳴きは電流変動が小さい方が音を小さくできるので、発熱よりもコイル鳴き対策で電力設定をチューニングしています。性能的にはもっと制限を厳しくしても大丈夫なんですが、設定値を管理(記憶)したくなので37号機や38号機と同じ設定を入れています。

そのため、ケースは触っても動いていることがわからないぐらいの温度になっています。

建造所感

39号機はOpenVPNを積んだルータ相当のサーバですが、正直OpenVPNを動かすだけなら今や独立したx86のPCである必要を感じないのも事実です。OpenWrtを積んだBBルータやNanoPiなどのSmall Board Computer(SBC)などでも充足出来ると思ってます。

ユニットコスト面でもx86で新造すると200USD前後(30k円)かかるのに対してSBCなら大体170USDぐらいでなので、x86で作るメリットってなんだろうと思わなくはありません。まぁ、もう組んでしまいましたけど。

38号機稼働開始(25号機更改リプレース)

先日(と言いつつ結構経ちますが)、24号機に続き、25号機の後継として38号機の稼働を開始しました。購入後約11年弱、運用自体は2016年からですが、トラブルはありつつも8年近い運用にピリオドを打ちました。

38号機の主な構成

Silverstone SST-ML10のケースにASRock N100DC-ITXを組み込んだものです。メモリはCFD Crucial DDR4-3200の32GBx1です。これにMeanwellのGST90A19-P1Mという19V 90WのACアダプタで電力供給しています。

先日稼働した37号機とはSSDとOSを除き全く同じ構成です。というか、37号機と38号機でハードウェア的に違うのはSSDだけです。それ以外はブザーやSATAケーブル、後から付けた縦置用のゴム脚に至るまで同一構成です。

置き換え元となる25号機(と24号機と34号機)はすべてゼロスピンドル機で、静粛性と耐衝撃性の向上、並びに通常運用中のメンテナスフリー化を志向したマシンです。38号機もこの志向を引き継ぎいでゼロスピンドル機としました。Twitterでは120mmファンを搭載しようかと呟いていたのはこの38号機のことなんですが、メンテナンスフリー化は捨てがたいのでゼロスピンドルで組みました。

ケース・電源

ケースは前述の通りSilverstone SST-ML10です。前述の通り37号機と全く同じです。シリアル番号までほぼ同じで、最後の桁以外は全く同じです。37号機と同じ構成ですが、37号機側が流用で38号機側オリジナルです。

プラットフォームはMini-ITXを採用し、電源もボードタイプやpicoPSUいずれでも行けるように配慮した構成にしてあります。これは、故障が頻発してマザーボードの予備をすべて失っても最悪その時に売ってるMini-ITXのマザーボードを使えるようにしてあります。また、2.5インチSSDを2台搭載出来る構成にしてあります。

電源は実家で稼働実績にあったMeanwell社のGST90A19-P1Mです。37号機と同一機種で、37号機同様にDigikeyで買いました。Efficiency Level VI対応です。

カタログスペック上の効率は90%です。Efficiency Level VIが嘘でないなら、90Wクラスの電源であれば少なくとも87%はある筈です。最近流行りのGaNトランジスタを使用しているかは不明です。GaNトランジスタの採用を謳ってる機種と比べると90Wという容量の割に嵩張ります。ただ、表面積が大きい方が放熱、つまり寿命面では有利です。まぁ、とは言え、13W程度の消費電力でも電源が入っていることがわかる程度には発熱します。

GST90A19-P1Mはファンレスですが本体に青色LEDの通電ランプがあり、これがなかなかの光量で光ります。夜中は目に刺さるのでLightDimの減光用のシールを2枚重ねで貼っています。

マザーボード・メモリ

マザーボードはN100DC-ITXです。マザーボードも37号機とは製造番号が一つ違いのものを使用しています。ちなみに製造番号は隣り合ってましたが、MACアドレスは第5 WORDは同一だったものの、第6 WORDは隣り合っていませんでした。

37号機でも買いた通り、マザボはデスクトップ用のDDR4-DIMMを1枚だけしか搭載出来ないので、CFD Crucialの2枚セット品を買ってそのうちの片割れを使っています。もう片割れは37号機で使っています。

SSD

SSDは2台構成なのは37号機と同一ですが、2台とも37号機とは異なるモデルを搭載しています。

38号機のSSDはTranscendのSSD470K (以下、SSD470K)というシリーズの1TBと250GBを採用しました。これは産業用で、書き込み寿命が250GBモデルは591TBW (推定)、1TBモデルでは2,365TBW (推定)ある製品です。(DPDW2.16@3年から計算)。

コンシューマー用のTBWは250GBのSSDで100〜200TBW程度、1TBだと400〜600TBW程度で、DPDW@3年の値は大体0.7前後ぐらいが相場なのでコンシューマ用と比べると2.5倍以上の書き込み耐性があります(2024年現在)。

Transcendの産業用のSATA SSDには他にSSD422Kというのがあり、こちらも検討はしました。比較は下記です。SSD422KはDPDWが2.6とちょっと高いぐらいですが、アクティブ時の消費電力が470Kの約1.5倍、値段が470Kのざっくり2〜2.5倍と色々コストが高いので470Kの方を買うことにしました。ちなみにSSD470Kは112層の3D-NAND構成ですが、SSD422Kは2D-MLC NAND構成みたいです。その所為か定かではありませんがカタログ上のIOPSはSSD422Kの方が低いです。

Transcend SSD470Kの消費電力、TBW
https://jp.transcend-info.com/embedded/product/embedded-ssd-solutions/ssd470k-ssd470k-i (2024.06.09閲覧)
Transcend SSD422の消費電力、TBW
※2D-MLCとTBWの多さが絶対的正義ではないならSSD470Kの方がお買い得。
https://us.transcend-info.com/embedded/product/embedded-ssd-solutions/ssd422k (2024.06.09閲覧)

SSD470KもSSD422Kも産業用ですが、普通にAmazon上でAmazon販売で売ってるので買えます。ただ、レビュー見るとサポートソフトウェアとかを手に入れるには大口クライアントにならないとダメみたいなことが書かれています。

SSD470Kのアイドル消費電力1.35Wは、昨今のSSDとしては大食いです。昨今のコンシューマー用SSDのアイドル時の消費電力は数百mW、製品によっては100mWを切ってます。そんな中470Kはカタログで1.3Wあり、実機でもPD+20VトリガーケーブルをAVHzYのCT-3経由で見た感じ、だいたいカタログ値通りの電力を消費しています。

正直なところ、このSSD470Kは過剰スペックだと思ってます。欲しかったのはSamsung 860 ProぐらいのスペックのTBW(250GBで300TB前後)なので、250GBで600TBWに迫るTBWは明らかに過剰です。

ただ、860/870系統のSamsungのPro版SATA SSDは検討時には既にディスコンのようで、Amazonでの価格が異様に高く(50K超)、2台で10年間都合1.3W×2=2.6W分の電気代を垂れ流してもまだSSD470Kの方が安いのでSSD470Kにしました。購入費用は2台で約35k円でした。

ちなみに、先代の25号機のSSDは2台で8万円近くしました(※)。そのため2013年の導入当初は更改時も使い回す気満々でした。ただ、25号機に更改するとき、UEFI+GPTにしたつもりが後からBIOS+GPTでOSが入ってたらしいことに気づいたのと、25号機で採用したSSDであるCFD HG6dもIntel 335もTBWが不明(非開示)で残余寿命がわからないので続投しないことにしました。

容量は25号機の頃は512GB+240GBでしたが、38号機では13号機と構成を合わせる形で1TB+250GBにしました。

OS

OSは、先先代(15号機)、先代(25号機)に続きOSはFreeBSD(amd64)です。今回の更改はこのFreeBSDのインストール・運用がなかなか安定せず難航しました。

Intel N100はEコアだけ積まれてる12世代プロセッサですが、どうもFreeBSD14はEコアしか無いのは想定外なのか、デフォルトで起動するとファイルシステム(UFS)操作でクラッシュします。mysql80-serverを/var/db/mysqlを削除してクリーンスタートすると割と簡単に再現します。

なかなか原因と対策が突き止められなくて、IOが怪しいところまではわかったんですがそこからCPU不良を疑ってマザボ変えてみたり、SSD変えてみたり、M.2 PCIeをSATAに変換する基板入れてみたりしても再現してました。

クラッシュする瞬間をiPhoneでスロー撮影したりして色々調べていたら、FreeBSDのMLで/boot/loader.confに「vm.pmap.pcid_enabled=0」を入れると直るかも的な記事をここ(https://www.mail-archive.com/users-jp@freebsd.org/msg00203.html)で見つけました。それで実際に/boot/loader.confに「vm.pmap.pcid_enabled=0」を入れたら嘘のように安定したので、やっと移行作業が出来るようになりました。

このN100DC-ITXはNICにRealtek RTL8111Eが搭載されています。FreeBSD標準添付のドライバがクソなのかなんなのかわかりませんが、SCPするだけでもNICがよくこけるのでRealtekの公式ドライバらしいrealtek-re-kmodのpkgを入れてあります。

移行

移行は15号機や25号機でもやってきたように、新しいマシンを傍らに置いて、ルータでNAPTを止めての移行作業です。1発勝負です。終わった時に脳汁(ドーパミン)が最も出るやり方です。まぁ失敗して戻したことは無いのですが、どのマシンの移行でもトラブルが無かったことも皆無という残念な方法です。

移行で面倒なのは設定ファイルのレビューですね。実はOSやソフトウェアは安定版ではありますが最新版を追ってて、リリース用ML等で新バージョンのアナウンスが出ると速攻で入れてます。しかし、バイナリとは対照的に設定ファイルはインストールしたときからほとんど変わっていません。

現に動いている設定ファイルなので、次のマシンに持っていても動きます(たまに動きませんが…)。ただ、長年使った設定ファイルと最新の設定ファイルを比較すると、今設定していない値に値が定義されていたり、わざわざ定義している値のデフォルト値等が変わって定義が不要になったり、定義している値が非推奨な値になっていることがちょくちょくあります。

このため、更改時には旧設定と新設定を見比べて、古い設定ファイルから新しい設定ファイルに適切に設定を移行する必要があるのですが、これがなかなか面倒な作業でした。ちなみに、今回の一番設定が違ってたのがmysql.cnfでした。FreeBSD10.0で入れたMySQL5.6の設定ファイルでもMySQL8.0でも動くのかーとは思いましたが、結構Deprecatedな設定があったのでそのまま持っていくのは流石にやめて、サンプルConfigから作り直しました。

チューニング

37号機同様、電力設定をチューニングしています。チューニングは37号機と同じでPL1=10W, PL2=25W Autoから、PL1=6W, PL2=10W 10sにしています。38号機はPL2=15W 20sぐらいは欲しいなぁと言うのが正直なところです。ただ、37号機と比べるとSSDの発熱が大きく、安定的に性能を出せる電力はこの辺りかなーって感じで37号機と同じPL1=6W, PL2=10W 10sにしています。

逆に言うと、37号機は38号機よりSSDの発熱が低いのに38号機と同じ設定なので、もっと上げられると言えます。ただ、面倒なので合わせています。

この設定でFreeBSD 14.0で、常温下に縦置きで概ね63〜67℃程度を推移しています。SSDの発熱のせいか37号機よりも10℃ほど高い温度になっています。ただ、先代の25号機もこんな感じの温度だったので、マザーボードなどでハズレ個体引いていなければそうそう壊れることも無いと思っています。