どこにでもいるような普通の一般人が、たまに自分用メモを書いてる。

Hestia Control Panel (HestiaCP)

日付:

共有ホスティング (いわゆるレンタルサーバー) に ConoHa WING を使ってきたのだが、ナンタラ調整費とやらで料金変動制になり、胡散臭さと面倒くささがマシマシなので、VPS に Hestia Control Panel (HestiaCP) を入れて代替を検討した記録。

HestiaCP とは:

  • cPanel や DirectAdmin、Plesk のようなユーザー向けコントロール・パネル
  • Vesta Control Panel (VestaCP) の fork
  • Debian / Ubuntu 対応
  • カスタムインストールで必要な機能のみインストール可
    • 入れなかった機能はユーザーからほぼ見えない
  • httpd は Apache + nginx と nginx のみから選択
  • multi PHP (複数バージョンの PHP を入れてユーザーがドメインごとに選べる機能) 対応
  • ウェブアプリケーションのインストーラー
    • WordPress 対応
  • Cloudflare CDN 対応
  • ホワイトラベル対応

(私が特に重視した特徴を強調)

元になった VestaCP は開発が止まっている。HestiaCP とは別の fork である myVesta も試してみたが……以下の理由から断念。

  • 入れなかった機能の残骸がユーザーから見えてしまう
  • Apache + nginx 構成でないと multi PHP に対応しない

ウェブアプリケーション・インストーラーは Softaculous という最強クラスのインストーラーを利用できる myVesta に軍配が上がる。ただ Softaculous は無料版が対応しているアプリケーションが少なく、何より WordPress は無料エリアにない。


インストール

HestiaCP: インストールページで選んだり入力したりすると、パラメーターつきのコマンドラインが表示されるので、コピーしてシェルにペーストするだけ。

注意点

Port

標準ではポート 8083 で HestiaCP が動作するが、コントロールパネルに Cloudflare CDN を使う場合は Cloudflare: Network ports の「HTTPS ports supported by Cloudflare」記載のポートに変更する必要がある。

Hostname

コントロールパネルの URL に使いたいホスト名を入力するわけだが、この欄やインストーラーに入力したホスト名で /etc/hostname が上書きされ、/etc/hosts も変更される。

元の /etc/hosts の末尾に改行がない場合、中身が変になるので、手動で直す必要がある。
直す必要が生じた例:

192.168.0.1 host.example.com127.0.0.1 host.example.com

運用

host.example.com:8083 としてのインストールを仮定して説明。

パッケージ

Apache、Bind、MadiaDB、nginx、PHP は Debian のリポジトリ以外からインストールされる。
(MySQL は確認していない)

各リポジトリは /etc/apt/sources.list.d/ に追加されている。

APT での PHP パッケージ更新時、設定ファイルを更新してはならない

HestiaCP ではセキュリティのため、PHP の disable_functions かなり厳しく設定している。 一方 Debian のデフォルトはザル。 したがってパッケージ更新時に設定ファイルを更新 (Debian デフォルトでの上書き) してはならない。

翻訳

日本語訳は未完成だったので、Crowdin の HestiaCP 翻訳プロジェクトでだいたい翻訳した。

Language を Japanese にしてインストールした HestiaCP があまり訳されていなかったら、下記の手順で新しい翻訳を入れると良い。

  1. Crowdin にサインアップ (アカウント持ってない場合)
  2. ログイン状態で翻訳プロジェクトを開き、hestiacp.pot の右メニューボタンから Download
  3. hestiacp.po をサーバーにアップロード
  4. msgfmt で hestiacp.mo にコンパイル
  5. できた hestiacp.mo を /usr/local/hestia/web/locale/ja/LC_MESSAGES/hestiacp.mo に上書き

非ログイン状態で↑↓ボタンから Download translations しても中身は古いので注意。

コンパイル:

% sudo apt install gettext
% msgfmt -o hestiacp.mo hestiacp.po

msgfmt の代わりに Poedit で「MO にコンパイル」しても hestiacp.mo が得られる。

sudoers

/etc/sudoers.d/ 下にユーザー admin の設定が作られるので、/etc/sudoers でここを読み込まないようにしている場合は host.example.com:8083 にアクセスしても 500 エラーになる。
Debian のデフォルトでは読み込むようになっているが、私はサーバーのセットアップ時にコメントアウトしてしまうので、見事に穴を踏み抜いた。

nginx

nginx は2個実行される。

  • /usr/sbin/nginx
    • 設定 /etc/nginx/
    • ポート 80、443
    • Apache を入れる場合のリバースプロキシ
    • Apache を入れない場合のウェブサーバー
  • /usr/local/hestia/nginx/sbin/hestia-nginx
    • 設定 /usr/local/hestia/nginx/conf/
    • ポート 8083
    • HestiaCP 用

HestiaCP (ポート 8083) の SSL 証明書

hestia-nginx はインストール時に生成された自己署名 SSL 証明書を使う設定になっている。当然ブラウザーで警告が出る。

Hestia ドキュメント: SSL Certificates の手順に従うと Let’s Encrypt の証明書が導入される。

しかしこの手順では host.example.com:443 と host.example.com:8083 に証明書をそれぞれ得ることになってしまう。
そこで先に HestiaCP 上で Web (ウェブ) → host.example.com → Enable SSL for this domain (このドメインで SSL を有効化) にチェック→ Use Let’s Encrypt to obtain SSL certificate (Let’s Encrypt で SSL 証明書を取得) にチェック→ Save (保存) することで 443 の証明書を得ておく。
次に hestia-nginx の証明書を差し替える。

% cd /usr/local/hestia/ssl
% sudo rm certificate.crt certificate.key
% sudo ln -s /home/admin/conf/host.example.com/ssl/host.example.com.crt ./certificate.crt
% sudo ln -s /home/admin/conf/host.example.com/ssl/host.example.com.key ./certificate.key
% sudo systemctl restart hestia

とすることで 443 用の証明書を 8083 でも利用するようになる。

証明書の更新は /usr/local/hestia/bin/v-update-letsencrypt-ssl で行われる。
既存の証明書の有効期限まで 31 日以下になると更新を行い、

  • /usr/local/hestia/bin/v-restart-web (nginx の再起動)
  • /usr/local/hestia/bin/v-restart-mail (Exim の再起動)

を実行する。
admin の crontab で v-update-letsencrypt-ssl を日実行するように設定されている。

hestia-nginx はここで再起動されないので、admin の crontab を編集する。
シェルからでも HestiaCP からでも良い。

シェルで作業する場合
% sudo -u admin crontab -e

この行を:

42 5 * * * sudo /usr/local/hestia/bin/v-update-letsencrypt-ssl

こうする:

42 5 * * * sudo /usr/local/hestia/bin/v-update-letsencrypt-ssl && sudo /usr/local/hestia/bin/v-restart-service hestia

(時刻はインストールにより異なるようなので適宜読み替えて欲しい)

HestiaCP で作業する場合

admin でログインし、Cron タブで次の行を編集:

sudo /usr/local/hestia/bin/v-update-letsencrypt-ssl

こうする:

sudo /usr/local/hestia/bin/v-update-letsencrypt-ssl && sudo /usr/local/hestia/bin/v-restart-service hestia

Save (保存)。

これで 443 と 8083 で同じ証明書を使い、更新後は新しい証明書が読み込まれる。

Fail2Ban

/etc/fail2ban/jail.d/defaults-debian.conf は削除され、SSH も含めて HestiaCP で管理される。

Exim を入れず外部 SMTP でコントロールパネルからのメイルを送信

私はメイル機能をセルフホストせず MXroute を使っているので、Exim は入れない。
メイルを外部化することで、ウェブサーバーには sendmail コマンドすらなく、ポート 25 への外向き通信をまるごと nftables / iptables でブロックしてしまう運用が可能になる。
そんなわけで外部 SMTP を利用する設定が必要になる。

HestiaCP ドキュメント: Email and mail server の『How do I setup internal mail to be sent over SMTP?』に従う。

% sudo bash /usr/local/hestia/install/upgrade/manual/configure-server-smtp.sh

SMTP Security は ssl か tls を入力する。

  • ssl: ポート 465 を使う場合
  • tls: ポート 587 で StartTLS する場合

設定は /usr/local/hestia/conf/hestia.conf にすべて (パスワードも!) 平文で保存される。 一応 /usr/local/hestia/conf/ が root:root パーミッション 750 だから大丈夫だろう、ということかな。

メイルに関するアンチウイルスを有効にできない場合

/usr/local/hestia/conf/hestia.conf を編集し、下記を書く (情報源)。

ANTIVIRUS_SYSTEM='clam'

そして HestiaCP を再起動。

% sudo systemctl restart hestia

(動作確認のために Exim 入りでインストールした時、インストール時に ClamAV をチェックしているのに hestia.conf にこの設定が記入されていなかったので)

WordPress インストーラー

日本語 (ja) のインストールに対応していなかった。

/usr/local/hestia/web/src/app/WebApp/Installers/WordPress/WordPressSetup.php を編集して言語が並んでいるあたりに次の行を挿入。

                                        "ja"    => "Japanese",

(この変更はプルリクエストを出し、マージされた)

なお、サイト名に日本語を使おうとして変換確定に Enter を叩くとインストールされてしまうので、適当に英数字を入れておいてインストール後に WordPress 上で変更する方が良い。

host.example.com から HestiaCP (host.example.com:8083) へのリダイレクト

https://host.example.com/ にアクセスすると工事中ページが表示されて気持ち悪いので、https://host.example.com:8083/ にリダイレクトしてしまいたい。
だが、HestiaCP 上で「Enable domain redirection (ドメイン転送を有効化)」すると phpMyAdmin もリダイレクトされてしまって使えなくなる。
トップページだけ HestiaCP にリダイレクトしたい。
という場合の設定。

なお https://host.example.com/ では、実運用のサイトを公開すべきではない。
このドメインは admin の権限で動作し、admin は sudoers で『/usr/local/vesta/bin/*/usr/local/hestia/bin/*root として実行する権限』を付与されている。
何らかの脆弱性があった場合に root 権限でのコマンド実行が可能になってしまうおそれがある。
HestiaCP 上で admin としてドメインを追加しようとすると警告が表示されるのも、そうした理由からだ。

nginx の場合

/home/admin/conf/web/host.example.com/nginx.ssl.conf_redirect を作る。
内容:

location = / {
                rewrite ^/$ https://host.example.com:8083/ permanent;
}

(/home/admin/conf/web/host.example.com.ssl.conf を編集しても同じ結果を得られるが、Rebuild (再構築) で上書きされる可能性がある)

nginx は明示的な再読込が必要。

% sudo systemctl reload nginx

Apache の場合

/home/admin/web/host.example.com/public_html/.htaccess を作る。
内容:

RedirectMatch permanent ^/$ https://host.example.com:8083/

Aoache は再読込不要。

phpMyAdmin が動かない

結論: 下記を実行 (情報源)。

% sudo chown -R root:www-data /etc/phpmyadmin/

nginx で Brotli 圧縮できない

Debian bookworm における結論: 諦める。

  1. nginx は Brotli を自らサポートする意志がなく、Google の ngx_brotli を導入する必要がある。
  2. HestiaCP では nginx リポジトリの nginx を使う。
  3. nginx リポジトリには ngx_brotli がない。

以上。

Debian bookworm は libnginx-mod-http-brotli-(filter|static) として ngx_brotli を収録しているので nginx mainline から Debian 収録の nginx に乗り換えれば使えるのではと思って試してみたが、設定テンプレートと衝突して動作しない。
理由:

  1. bookworm 収録の nginx は 1.22.1。
  2. nginx mainline は本記事執筆時点で 1.25.3。
  3. nginx 1.25.1 以降、HTTP/2 を使うためのディレクティヴに変更があった。
  4. HestiaCP は 1.25.1 以降用のディレクティヴを使っている。

自分で ngx_brotli をビルドして入れれば動くだろうが、いちいちやってられないから APT に頼るわけで。

ファイアウォール

ファイアウォール・ルールは一覧の下にある方が優先される。
ファイアウォール・ルールの下から上に向かって iptables に設定しているようだ (iptables は先に記述した方が優先なので)。

コントロールパネル (ポート 8083) へのアクセスを制限したい場合は下記の手順を踏む。

  1. Add Rule (ルールを追加) でポート 8083 へのアクセスを許可する IP アドレスを書いて Save (保存)。
  2. ルール一覧でコメント「HESTIA」のルールを編集し、Action (アクション) を Deny (拒否) に変更して保存。

順番は大事。順番を間違えると、すべての IP アドレスからポート 8083 へのアクセスを拒否した時点で自分もコントロールパネルから遮断され、その後の操作ができない (ssh で直すことになる)。

株式会社 TS クラウドからの spam

日付:
タグ:

私の個人メイルアドレスにこれが来た。

Google Workspace管理担当者 様

GoogleプレミアパートナーのTSクラウド・岡沢美香と申します。
Google Workspaceの月契約料金が、4月11日より20%値上げされると発表されたことに伴い、
コストを削減できる「年間契約」への切り替えをご案内させていただいております。
資料:https://docs.google.com/presentation/d/1UVcd8f_cL0sFBuJbDq0WC0Kx3KyPxjLcdgMMQopfA-k/edit?usp=sharing
※先着100社を対象に「13%割引キャンペーン」を実施しております(3月31日まで)

ご興味のある方は、このメールに返信していただければ幸いです。
急なご案内となり失礼いたしました。

-------------------------
株式会社TSクラウド 
岡沢美香 Okasawa Mika
050-5536-4594
https://tscloud.co.jp/
-------------------------

araki.jp は旧 Google Apps から無償版を使っているが、あくまで個人メイルアドレスだ。
そこへの spam 送信は特定電子メールの送信の適正化等に関する法律に違反している。

株式会社 TS クラウドは猛省せよ。


(2023/03/19 追記)

ドメイン名の WHOIS に記載しているメイルアドレスにも送ってきた。完全に目的外使用。
株式会社 TS クラウドは違法に spam を送信する反社会的企業であるから、利用すべきではない。

TDK GBDriver GS1 SSD の S.M.A.R.T. 情報

日付:
タグ:

TDK の GBDriver GS1 という SSD を中古で入手したのだが、この S.M.A.R.T. 情報についてのメモ。

TL;DR

  • 使用時間や電源投入回数は『生の値 * 256 + 最悪値 = 実際の値』
  • 総書込量は 64 項目で『(生の値 * 256 + 最悪値) * 50MB = 総書込量』

詳細

まず S.M.A.R.T. 情報の項目自体かなり少ない。

ID 項目名
09 使用時間
0C 電源投入回数
64 ベンダ固有
AB ベンダ固有
AC ベンダ固有
AE ベンダ固有
B8 エンドツーエンドエラー
C7 UltraDMS CRC エラー数
FB ベンダ固有
FC ベンダ固有

といった具合。項目名は CrystalDiskInfo (8.16.4) による。

また、CrystalDiskInfo で表示される電源投入回数が増えない。
絶対増えないわけではないのだが、生の値の扱いが普通ではなく、次の式による。

生の値 * 256 + 最悪値 = 実際の数

そのため電源投入256回で CrystalDiskInfo での表示が1増えることになる。 使用時間も同様と考えられるので、256時間で生の値が1増えるはずだ。1時間で最悪値が1増えることは確認した。

総書込量は S.M.A.R.T. の項目としては存在しないが、64 項目で近い値が得られるようだ。
数分程度での検証だが、約 50MB の書込で 64 項目の最悪値が1増加し、最悪値が256に達すると生の値が1増加し最悪値が0になることを確認した。

(生の値 * 256 + 最悪値) * 50MB = 総書込量

なお CrystalDiskInfo を使う場合、生の値は16進法、最悪値は10進法の表示であることに留意。


この SSD のシリーズは SLC、pSLC、MLC とバリエーションがあるが、私が入手した個体がどれなのか知る術は今のところ見つけられていない。

メモ置き場を Netlify から Cloudflare Pages に移転した

日付:

これまで本サイトは Netlify に収容してきたが、このたび Cloudflare Pages に移転した。
Netlify は無料プランの場合、日本からのアクセスはシンガポールのサーバーで受けるが、Cloudflare Pages なら日本国内のサーバーで受けてくれるので。

本サイトは生成に Hugo を使用し、電力料金比較表だけは PHP (php-cli) で Hugo 用のソースを出力するという変則的な構成だが、Cloudflare Pages でも何一つ変更することなくこなしてくれている。

Cloudflare DNS を使わず、DNS CAA レコードを使っている場合の注意点

ここだけ少し引っかかった。

  • そのドメイン名で Cloudflare DNS を使っていない
  • DNS CAA レコードで SSL 証明書を発行できる認証局を指定している
  • その認証局に Cloudflare が利用している認証局が含まれていない

という条件を満たす場合に、CNAME レコードを設定しただけでは Active にならず、Inactive (Error) になってしまう。
自前の DNS と Let’s Encrypt を使っている場合が該当する。
Cloudflare Pages では Cloudflare 発行の SSL 証明書を使うことになっているので、それが発行できる状態でないとダメ、というわけだ。

そのため一度 Remove domain し、Cloudflare が SSL 証明書を発行できるように CAA レコードを追加する必要がある。

example.com.	IN	CAA	0 issue "digicert.com"
example.com.	IN	CAA	0 issue "comodoca.com"

レコードは Cloudflare の説明による。
Cloudflare DNS では issuewild も設定されるようだが、Cloudflare Pages に本サイトを収容する際には必要でなかった。

2021年 VPS

日付:
タグ:

半導体の価格高騰により、VPS も価格が上昇している印象。また、HDD ではなく SSD、中でも NVMe を採用する業者が増えた一方、ストレージ容量は下がっている。


8月下旬。あまりの安さについつい。

  • Boomer.host (Dallas, TX, US)
    • 4.95 USD / year
    • OpenVZ / 1 vCPU / 512MB RAM / 5GB SSD / 180GB BW / 1 IPv4 / 1 IPv6

ブラックフライデー / サイバーマンデー (BF/CM) では、サーバーの地理的分散を進めるべく各地に。あとフラッシュセールに飛びついたり。

  • Time4VPS (Vilnius, LT)
    • 15 EUR / year
    • OpenVZ / 1 vCPU / 2GB RAM / 20GB SSD / 2TB BW (100Mbps) / 1 IPv4 / 1 IPv6
    • 自宅からの ping rtt avg: 270ms
  • WebHorizon (Warsaw, PL)
    • 16 USD / year
    • OpenVZ / 2 vCPU / 2GB RAM / 40GB NVMe / 15TB BW (1Gbps) / 1 IPv4 / IPv6 (/64)
    • 自宅からの ping rtt avg: 253ms
  • AlphaVPS (Sofia, BG)
    • 18.74 EUR / year
    • KVM / 2 vCPU / 2GB RAM / 15GB SSD / 1.5TB BW (1Gbps) / 1 IPv4 / IPv6 (/64)
    • 自宅からの ping rtt avg: 255ms
  • RackNerd (Buffalo, NY, US)
    • 12.79 USD / year
    • KVM / 1 vCPU / 1.2GB RAM (1GB swap) / 28GB SSD / 4TB BW / 1 IPv4 / no IPv6
    • 自宅からの ping rtt avg: 159ms
  • VirMach (Buffalo, NY, US)
    • 8.84 USD / year
    • KVM / 1 vCPU / 2GB RAM (256MB swap) / 35GB SSD / 3500GB BW / 1 IPv4 / no IPv6
    • 自宅からの ping rtt avg: 157ms
  • HostCram (Dallas, TX, US)
    • 7 USD / year
    • LXC / 1 vCPU / 1GB RAM (1.5GB swap) / 10GB NVMe / 1TB BW / 1 IPv4 / IPv6 (/48)
    • 自宅からの ping rtt avg: 143ms
  • DediPath (Jacksonville, FL, US)
    • 10 USD / year
    • OpenVZ / 1 vCPU / 1GB RAM / 20GB SSD / 10TB BW (1Gbps) / 1 IPv4 / 1 IPv6
    • 自宅からの ping rtt avg: 186ms
  • Zappie Host (Valdivia, Ros Rios, CL)
    • 6.75 USD / 6 month
    • LXC / 1 vCPU / 512MB RAM / 30GB SSD / 200GB BW (100Mbps) / 1 IPv4 / ? IPv6
    • 自宅からの ping rtt avg: 300ms

フラッシュセールに飛びついた結果、バッファローだけで RackNerd と VirMach がかぶってしまった。出た時間帯が逆なら、VirMach だけで RackNerd は契約しなかったところだが、まあこれがフラッシュセールというものだろう。
ダラスなんかもっとひどくて、2014年から使い続けてる VPSDime、昨年 BF/CM の RackNerd、今年夏の Boomer.host、そして今年 BF/CM の HostCram と4台もある。

とりあえず来年は RackNerd を1台更新しない方針。
ColoCrossing 再販で IPv6 がないからね! (まあそれは VirMach も同様だが)

ヴィルニュスとワルシャワもどちらか片方を残す方向で、地理的にはヴィルニュスの Time4VPS を残したいのだが、どうにもストレージが遅い。一方ワルシャワの WebHorizon は OpenVZ ながらストレージは NVMe だけあってサクサクなだけに、なおさら。


Gullo’s Hosting はメモリ 512MB 以上の VPS は BF/CM セールに出てこなかったので、後日これを契約。
このほかモルドヴァのキシナウというエキゾチックロケーションの割に安価というところに惹かれて AlexHost を契約。

  • Gullo’s Hosting (Sydney, AU)
    • 12 USD / year
    • OpenVZ / 1 vCPU / 1GB RAM / 20GB HDD / 1000GB BW / 1 IPv4 / IPv6 (/80)
    • 自宅からの ping rtt avg: 169ms
  • AlexHost (Chisinau, MD)
    • 11.88 EUR / year
    • KVM / 1 vCPU / 1536MB RAM / 10GB SSD / unmetered @ 100Mbps / 1 IPv4 / 16 IPv6 (not block)
    • 自宅からの ping rtt avg: 285ms

Gullo’s Hosting は2020年5月の記事だが、執筆時点でクーポンコードはまだ有効だった。
シンガポールの在庫が復活したら現在の 512MB RAM から 1GB RAM に乗り換えたいところ。

AlexHost は 10GB SSD だが、Debian イメージでは swap に 1GB、/boot で 600MB 食われて / は 8.4GB。
KVM でマウントできる ISO image に Debian bullseye があるので、いずれインストールし直そう。
IPv6 アドレスは1~16個から選択でき、1個でも16個でも料金は変わらないので16個にした。一応連続した16個が割り当てられているが、ブロックとしての割り当てではない。

systemd-networkd-wait-online が2分間のタイムアウトまで居座る

本来はネットワークアダプターが複数ある環境で片方 LAN ケーブルが抜けているといった状況で発生する問題のようだ。
Ethernet Servers の OpenVZ で、ネットワークアダプターは venet0 と venet0:1 の環境で発生した。

これによって再起動時に After=network-online.target になっているサービスが上がるまで時間がかかる。

Ethernet Servers は SolusVM での管理となっており、ネットワーク設定は /etc/network/interfaces、つまり ifupdown で行う。したがって systemd-networkd 自体が必要ない。にもかかわらず systemd-networkd が動くようになっていた。systemd-networkd を停止、無効化すれば良い。

$ sudo systemctl stop systemd-networkd
$ sudo systemctl disable systemd-networkd

LXC で pdns-recursor が起動しない

HostCram の LXC ではこの対応が必要だった。Zappie Host の LXC では不要。

pdns-recursor.service の下記の行をコメントアウトする。

ProtectControlGroups=true
ProtectKernelTunables=true
$ sudo systemctl daemon-reload; sudo systemctl start pdns-recursor

HostCram の LXC でまず最初にやること

/etc/pam.d/common-session の末尾近くにある下記の行をコメントアウトする。

session        optional        pam_systemd.so

これは LXC における Debian の基本らしいのだが、HostCram の VM イメージではコメントアウトされていなかった。ではどうなるかというと、su 等がえらく待たされる。

HostCram はまだ LXC 運用に慣れていない印象で、最初は systemd-logind が mask されておらず ssh も systemd-logind がタイムアウトするまで延々待たされるということもあった。

Time4VPS の OpenVZ でパッケージ削りの際の注意点

TL;DR quota は消すな。

VM イメージには最初から色々パッケージが入っていて、正直使わないものが結構多いので、私はまず最初に削り倒すことから始める。
OpenVZ や LXC だとぶっちゃけ initramfs-tools すら使わないので、libklibc ごと削除しても問題なく動作する。
というわけで削っていった結果、再起動をかけたら延々何もできなくなる有様に陥った。
「再インストールするから VM 止めてくれ」とメイルしたら、「quota 消したら起動しないよ」と返事が。
というわけで quota は削除してはいけない。 これまで OpenVZ で quota 削除して問題になったことはなかったのだが。

/etc/resolv.conf が再起動で上書きされてつらい件の対策

Virtualisor や Proxmox VE が VM 起動時・再起動に /etc/resolv.conf を上書きしてしまうので、これへの対策。

SolusVM や Virtualizor 下の OpenVZ や KVM:
VM 内で /etc/resolv.conf を編集した後、

chattr +i /etc/resolv.conf

すると、その後は上書きされなくなる。

Proxmox VE 下の LXC:
chattr すると VM が起動しなくなるので、泥臭く crontab に上書きを仕込む。

$ sudo crontab -e
@reboot echo 'nameserver 127.0.0.1' > /etc/resolv.conf

(2022/01/26 追記)

WebHorizon のワルシャワだが、フランスに移転との連絡が入った。ワルシャワという場所を気に入っていただけに残念。こうなるとヴィルニュスの Time4VPS は継続するしかない。
移転先は OVH、たぶん Roubaix。
フランスでは Central.so のパリ (これも OVH 再販) KVM VPS を契約しているし、距離的にも HostSlick のレリスタット (オランダ) も近いしで、WebHorizon の解約を検討。

VXL Itona Md76 シンクライアント

日付:

ヤフオクに掘り出し物でもないかと探していたら出てきた (お値段1,000円)、インド製のシンクライアント。
メーカー VXL がインドのメーカーだけあって製造もインド。

  • VXL Itona Md76
  • CPU : VIA Eden X2 U4200 1.2GHz (2コア)
  • メモリ : DDR3 SO-DIMM 2GB
  • ストレージ : SATA ハーフスリム 16GB
  • OS : Windows Embedded POSReady 7

HP t510 と同じ VIA Eden X2 U4200 を搭載しているが、1.0GHz ではなく 1.2GHz 動作になっている。

ストレージは SATA ハーフスリム (JEDEC MO-297) SSD 16GB 搭載で、M.2 2242 変換基板への換装は可能 (ただしネジ止めできない)。
mSATA 変換基板では横のコンデンサーと干渉して装着できない。

OS は珍しい Windows Embedded POSReady 7 が入っていたが、シェルが上がらない状態になっていた。Ctrl-Alt-Del からタスクマネージャーを開いて新しいタスクの実行をやれば Explorer や IE9 が動くのは確認した。
Windows 7 系でも POSReady 7 は延長サポート終了まで半年弱残っているが、今更直して使うほどの価値がある OS ではないね。

なお出品者はまだ在庫があるようで、現在も出品されている (「VXL ltona mdyy series」で検索。本来 Itona なのだが出品者のミスで ltona、大文字アイが小文字エルになっている)。
本体だけの出品で AC アダプターが付属しないので、19V、プラグ外径 5.5mm 内径 2.5mm のものが別途必要。電流はたぶん 2A もあれば足りる。

2020年ブラックフライデー VPS

日付:
タグ:

自分で契約したものばかり。

まだ契約できそうなもの

  • Ethernet Servers
    • https://www.ethernetservers.com/clients/store/ssd-linux-vps-special-offers
    • クーポンコード BLACKFRIDAY-VPS で 25% off。recurring なので翌年以降も 25% off。↓の金額はクーポン適用後。
    • 場所 Los Angeles / New Jersey
    • OpenVZ
    • 30 GB SSD / 1 TB BW / 1 GB RAM / 1 IP / 1 CPU
      • 9 USD / year
    • 60 GB SSD / 2 TB BW / 2 GB RAM / 1 IP / 1 CPU
      • 15 USD / year
    • 70 GB SSD / 3 TB BW / 2.5 GB RAM / 1 IP / 1 CPU
      • 18.75 USD / year
    • $15 の LA を契約したが快適。私が LA を契約した時は IPv4 アドレスが2個ついていたが、29日夜現在は1個になっている。クーポンコードはまだ有効なようだ。
    • 29日夜に $9 の NJ も契約した。
  • Gullo’s Hosting
    • https://hosting.gullo.me/black-friday/
    • RAM 512MB のシンガポール VPS が 8 USD / year。UK LittleVZ とあるが、オーダー画面でイギリスかシンガポールか選べる。
    • 上記ページからのオーダーリンクでクーポンコードはあらかじめ入力されているのだが、適用されていない場合がある。Use a coupon code をクリックするとコードが入力されているので Redeem する。ここでカートが空になる場合があり、その場合はもう一度上記ページからリンクを開く。
    • サポートなし、返金なしが強調されているので不安に思う人もいるだろうが、この業者 (といってもたぶん個人) は LET や LES などのフォーラムでアクティブに活動しているので、サーバーダウン等は速やかに解決されると思われる。私は3年半ほど彼のサービスを利用していて、これまでトラブルはない。
    • シンガポールは日本から近いだけあって低レイテンシで、操作性は素晴らしい。
  • HostHatch
    • https://www.lowendtalk.com/discussion/168301
    • 15 USD / year
    • KVM
    • 1 CPU (12.5% dedicated, burstable up to 100%)
    • RAM 2GB
    • NVMe SSD 20GB
    • BW 2TB
    • 場所 アムステルダム / ストックホルム / ロサンゼルス / チューリッヒ / オスロ / ウィーン / ワルシャワ / ロンドン / シカゴ / ニューヨーク / シドニー / 香港 / マドリード / ミラノ
    • 場所の選択肢がとても多い。香港・マドリード・ミラノは即開通ではなく12月中開通のプレオーダー。
    • 私はマドリードをプレオーダーした。
    • 契約方法の早い話 : 業者のサイトでユーザー登録してデポジットを払い、サポートチケットを開く。

それ以外

  • ViridWeb
    • 6 USD / year
    • KVM
    • 1 vCPU
    • RAM 1GB
    • SSD 25GB
    • BW 1TB
    • 場所 オランダ
    • IP アドレスは IPv4 と IPv6 が1個ずつ
    • LET のフラッシュセールで契約。ところがこの業者、クーポンコードの有効数設定を盛大に間違えて大量の注文を受け入れてしまい、返金処理をしているようだ。私のは開通して現在使えているが、後からキャンセル返金となるかも知れない。
  • RackNerd
    • 8.57 USD / year
      • KVM
      • 1 vCPU
      • RAM 768MB
      • SSD 20GB
      • BW 3TB
      • 場所 シアトル
    • 8.79 USD / year
      • KVM
      • 1 vCPU
      • RAM 1.2GB
      • SSD 16GB
      • BW 4TB
      • 場所 ロサンゼルス
    • LET のフラッシュセールで2台契約。ここは PayPal 支払いが FastSpring 経由で、FastSpring が消費税を上乗せしてくる (↑の金額は上乗せ済み)。が、それでもかなりのお買い得。
  • HostSolutions.ro
    • 8.88 EUR / year
    • 1 vCPU
    • RAM 2GB
    • SSD 50GB
    • BW 10TB
    • 場所 ブカレスト
    • ルーマニアの業者。LET のフラッシュセールで契約。5日以内に開通とのことで、まだ開通していない。

ベンチマーク

スクリプトはこれ

Ethernet Servers ロサンゼルス

Processor:    Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
CPU cores:    1
Frequency:    2399.926 MHz
RAM:          2.0Gi
Swap:         256Mi
Kernel:       Linux 4.19.0 x86_64

Disks:
ploop*****     60G  HDD

CPU: SHA256-hashing 500 MB
    5.598 seconds
CPU: bzip2-compressing 500 MB
    7.690 seconds
CPU: AES-encrypting 500 MB
    2.319 seconds

ioping: seek rate
    min/avg/max/mdev = 135.2 us / 366.8 us / 130.2 ms / 1.73 ms
ioping: sequential read speed
    generated 6.65 k requests in 5.00 s, 1.62 GiB, 1.33 k iops, 332.3 MiB/s

dd: sequential write speed
    1st run:    467.30 MiB/s
    2nd run:    487.33 MiB/s
    3rd run:    445.37 MiB/s
    average:    466.66 MiB/s

IPv4 speedtests
    your IPv4:    ***.***.***.***

    Cachefly CDN:         63.82 MiB/s
    Leaseweb (NL):        5.74 MiB/s
    Softlayer DAL (US):   20.06 MiB/s
    Online.net (FR):      4.88 MiB/s
    OVH BHS (CA):         10.57 MiB/s

IPv6 speedtests
    your IPv6:    ****:****:****:****

    Leaseweb (NL):        2.48 MiB/s
    Softlayer DAL (US):   6.29 MiB/s
    Online.net (FR):      1.68 MiB/s
    OVH BHS (CA):         6.92 MiB/s

SSD は高速だが、ネットワークは微妙かな?

Ethernet Servers ニュージャージー

OS を入れ直したら起動しなくなったのだが、サポートチケットを開いたら17分で解決の返事が来た。

Processor:    Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
CPU cores:    1
Frequency:    2399.926 MHz
RAM:          1.0Gi
Swap:         256Mi
Kernel:       Linux 4.19.0 x86_64

Disks:
ploop*****     30G  HDD

CPU: SHA256-hashing 500 MB
    5.447 seconds
CPU: bzip2-compressing 500 MB
    7.106 seconds
CPU: AES-encrypting 500 MB
    2.241 seconds

ioping: seek rate
    min/avg/max/mdev = 49.9 us / 230.4 us / 12.8 ms / 414.2 us
ioping: sequential read speed
    generated 6.18 k requests in 5.00 s, 1.51 GiB, 1.24 k iops, 309.1 MiB/s

dd: sequential write speed
    1st run:    577.93 MiB/s
    2nd run:    527.38 MiB/s
    3rd run:    653.27 MiB/s
    average:    586.19 MiB/s

IPv4 speedtests
    your IPv4:    ***.***.***.***

    Cachefly CDN:         86.58 MiB/s
    Leaseweb (NL):        9.12 MiB/s
    Softlayer DAL (US):   34.57 MiB/s
    Online.net (FR):      4.69 MiB/s
    OVH BHS (CA):         43.86 MiB/s

IPv6 speedtests
    your IPv6:    ****:****:****:****

    Leaseweb (NL):        13.79 MiB/s
    Softlayer DAL (US):   30.17 MiB/s
    Online.net (FR):      10.69 MiB/s
    OVH BHS (CA):         48.66 MiB/s

SSD は速い。

アメリカ東海岸なのでヨーロッパやカナダからの転送がロサンゼルスより速いのは理解できるが、ダラスも速い。

日本からの経路はニューヨーク (NYC) 経由。データセンターは Internap (INAP) のニュージャージーということなので、マンハッタンからハドソン川を渡って西に数 km の Secaucus らしい。まさにニューヨーク都市圏の VPS だと言える。

安 VPS 界隈でよく業者が利用する ColoCrossing がニューヨーク州バッファローにデータセンターを構えているため、NY と書いてあってもバッファローという安 VPS がかなり多いのだが、これは州境こそまたぐもののよっぽど NYC に近い。

Gullo’s Hosting シンガポール

Processor:    Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz
CPU cores:    1
Frequency:    889.465 MHz
RAM:          512Mi
Swap:         -
Kernel:       Linux 4.19.0 x86_64

Disks:
ploop*****     10G  HDD

CPU: SHA256-hashing 500 MB
    6.025 seconds
CPU: bzip2-compressing 500 MB
    10.402 seconds
CPU: AES-encrypting 500 MB
    2.406 seconds

ioping: seek rate
    min/avg/max/mdev = 140.4 us / 291.9 us / 73.7 ms / 1.00 ms
ioping: sequential read speed
    generated 1.04 k requests in 5.00 s, 259.8 MiB, 207 iops, 51.9 MiB/s

dd: sequential write speed
    1st run:    38.05 MiB/s
    2nd run:    38.24 MiB/s
    3rd run:    38.34 MiB/s
    average:    38.21 MiB/s

IPv4 speedtests
    your IPv4:    ***.***.***.***

    Cachefly CDN:         110.25 MiB/s
    Leaseweb (NL):        13.51 MiB/s
    Softlayer DAL (US):   3.37 MiB/s
    Online.net (FR):      15.65 MiB/s
    OVH BHS (CA):         7.29 MiB/s

IPv6 speedtests
    your IPv6:    ****:****:****:****

    Leaseweb (NL):        15.24 MiB/s
    Softlayer DAL (US):   2.86 MiB/s
    Online.net (FR):      14.89 MiB/s
    OVH BHS (CA):         5.19 MiB/s

見た目上 CPU はかなり絞ってあるようだ (889.465 MHz) が、ベンチマーク所要時間はそう悪くない。ストレージは SSD ではなく HDD と思われる。

ファイルサーバーの HDD 交換

日付:
タグ:

2014年に Q1900-ITX でファイルサーバーをリプレイスしたのだが、常時稼働5年半を超え、RAID1 を構成する HDD 2台のうち片方でバッドセクターが生じた。
ちょうど特別定額給付金が入ったので、HDD を交換した。


これまで HDD は基本的に Western Digital を選んでいて、メイン PC の SSD すら WD 製品を使うほど WD 信者と言っても良さそうな私なわけだが……よりによって NAS 向けである WD Red HDD で SMR を採用という大ポカをやらかしたので私の忠誠心は急落。

10TB あたりで考えていたのだが、ちょうど最新モデルから WD Red の 10TB はヘリウム充填ではなくなり、結構うるさいというレビューが散見された。
12TB を見てみたら、東芝が一番安くてヘリウム充填なのでこれに決定 (MN07ACA12T)。

この東芝 12TB HDD、普段は静かなのだが、書き込み時は昔の HDD のようなゴリゴリ音なので気になる人は多いかも知れない。


ついでにシステムとデータの分離を図る。

手元で余っていた Crucial の 64GB SSD (RealSSD C300 CTFDDAC064MAG) にシステムを入れ、ファイルサーバーとして使うデータ部分を切り離すことで、今後の HDD 交換時もデータのみコピーすれば済むようにした。

どうせログぐらいしか書き込まれないのだから SSD でもいけるだろう……という考え。

Wyse 3030 N03D シンクライアント (3290)

日付:

ヤフオクに2台で1000円 (送料を含めると2000円弱) という超特価で大量出品されていたもの。
メモリなし、ストレージなし、AC アダプターなしでの出品であるせいか、特価なのに入札者が少なかった。まだ大量に出ている。

  • Wyse 3030 N03D
  • CPU : Intel Celeron N2807 1.6GHz (2コア)
  • メモリ : DDR3L SO-DIMM 1スロット (元は 4GB らしい)
  • ストレージ : mSATA mini (元は 16GB らしい)

AC アダプターは 12V 5.5/2.1mm。電流容量は 1A で足りるはずだが、2A ぐらいが安心かな。手元に転がってるという人も多そうだ。
我が家には (他機付属のものを除いて) 4台あった。
持っていなくても、AliExpress でも200円以下で買える (到着まで日数はかかるが)。

メモリは DDR3L SO-DIMM で上限は 4GB (Celeron N2807 の上限)。出荷時にすでに最大量を搭載しているわけだ。
私は中古でメモリなしだったので、とりあえず 2GB をつけた。

ストレージは mSATA mini (JEDEC MO-300B) SSD。miniPCIe ハーフサイズと同じ縦横の mSATA SSD で、普通の (フルサイズ) mSATA は長さ方向でヒートシンクに干渉するため装着できない。
これの調達が本機活用にあたって最大のネックになると思われる。
AliExpress の最安値は Goldendisk の 8GB だが、もう少し出せば KingSpec の 64GB になる。悩ましい。
とりあえず注文して現在到着待ち。

ストレージ到着待ちなので Memtest86+ ぐらいしかしていないが、動作中で 6~7W。AC アダプターをあやしい中華 AC アダプターに交換すると動作中で最大 8W (ワットチェッカー実測)。1W の差は AC アダプターの発熱と思われる。中華の方が熱い。


内部へのアクセスは、背面のネジ3個をはずして、製品情報タグが入っていない側の側面パネルを開ける。
前面側がヒンジで背面側が開くようなイメージで、背面側を手前にして本を開くように左右に開くと言えばいいか。結構固いので不安になるかも知れないが、思い切って開ける。勢いがつきすぎるとスピーカーのケーブルが抜けるが、挿し直せばいい。

閉める時はまず前面側を深めに入れて、背面側を押し込んでいく。
こうしないと側面パネルの前面側が浮く。
実際に私が購入したものは、2台とも側面パネルの前面側が浮いた状態で到着した。


(2020/07/08 追記)

別の出品者からもう2台落札してしまった。2台あわせて送料込1000円足らず。
状態は先の2台と同様で、メモリ、ストレージ、AC アダプターがない。
こんな値段で落札できてしまうのは、用意しなくてはならないものが多いからだろうか。
トータル3000円弱で4台手に入ったことになる。

側面パネルの全面側は、やはり浮いていた。


(2020/07/22 追記)

Debian を入れて idle 状態で 3~4W。CPU 1コア 100% 使用状態で 5~6W。

iCop EBOX-3310MX-AP

日付:

EBOX-3310A-JSK に続いての Vortex86 シリーズ搭載機。

  • iCop EBOX-3310MX-AP
  • CPU : DM&P Vortex86MX+ 933MHz
  • メモリ : DDR2 1GB オンボード
  • ストレージ : なし

EBOX-3310MX シリーズはバリエーション豊富だが、リセットボタンがないものを「『Auto Power On』機能があるもの」と位置づけているようだ。
リセットボタンがあるものは、電源スイッチを ON にしてもリセットボタンを押すまでは起動しない。


Vortex86MX+ は Vortex86DX 同様 586 互換の CPU で、686 互換ではない。
そのため Debian は jessie までの対応となる。

Vortex86DX3 は 686 互換のデュアルコアらしいので、いつか入手してみたいものだ。


ストレージは含まれないが、SD カードスロットがあるのと、2.5インチ SATA HDD/SSD を内蔵できる (どちらも IDE HDD/SSD として認識される)。
9.5mm 厚の SSD だと内部の配線がかなり圧迫されるが、なんとか収まった。実際には 7mm 厚の方が良いだろう。

また、USB ポートは外部の3個 (前面2個、背面1個) だけでなく、内部にも1個あるので、内部のポートに USB メモリを挿してもいい。


Debian jessie でベンチマークをとってみた。VPS でよく使っている nench.sh

CPU: SHA256-hashing 500 MB
    41.209 seconds
CPU: bzip2-compressing 500 MB
    130.406 seconds
CPU: AES-encrypting 500 MB
    92.153 seconds

やはり遅いが…… Vortex86DX 1GHz と比べると動作クロックがやや低い 933MHz であるにもかかわらず、所要時間は下がっている。
Vortex86 シリーズも進化しているようだ。


Linux ではカーネル fb と相性が良くないようで、vga=normal をつけないと画面が右にずれる。

Vortex86DX はグラフィック機能がなく、EBOX-3310A シリーズは Volari Z9s を搭載していた。
Vortex86MX+ はグラフィック機能を内蔵しているため、違いが出ているものと思われる。

FreeBSD では問題なく表示できるし、X も動作する。
しかしウィンドウの上でマウスカーソルをぐりぐり動かすだけで Xorg が CPU を 80% も食うので、GUI 利用は現実的ではなさそうだ。