2020-12-31

省電力ミニPCにRockstor NAS V4.0.4をセットアップ

先日紹介した省電力ミニPCに目論見通りNAS OSをセットアップしました(4TBのUSB HDDを追加)。
NAS OSはミニPCでも稼働でき、macOSのTime Machineバックアップにも対応、iPhone/iPad用アプリで自宅バックアップにも対応、さらにDockerコンテナで色々なものを動かせます。

RockstorはOSSのNAS OSで、従来バージョンのV3.xはCentOS、最新V4.xはOpenSUSEをベースにしていて、btrfsをファイルシステムに使用します。
日本語の情報はあまりないのですが、macOSのTime MachineやWindowsのVolume Shadowingのようなファイルシステムのスナップショット機能が使いたくて、このRockstorを選びました。

何事も最初はうまくいかないもの。
まずは失敗したセットアップ方法を共有させてください。

  • まずはRockstor 3.9.1のインストーラISO(2017年7月)をダウンロードし、別マシンのVM上でインストールしました。
    これはもちろん問題なく動作しました。
  • このISOファイルをEtcherツールを使ってUSBメモリに書き込み、いざミニPCにインストールしようとしましたが、どうしても途中でコケてしまいます。
    どうやらRockstor 3.9.1のインストーラはEFIブートに対応していないようです、2017年のCentOSなので仕方ないですね。
    ミニPCの方もLegacy BIOSに設定する方法が見つからず。
  • それでは、最新版でと思い、Rockstor 4.0.4のRPMパッケージ(2020年10月)をOpenSUSEにインストールすればと考えました。
    OpenSUSE 15.2を順調にServer向けにセットアップし、zypper install rockstor でのRockstorパッケージのインストールも成功。
    (手順は下手に Built on openSUSE testing channel live (early-adopters / developers only) - Announcements - Rockstor Community Forum で見つけてしまったのが間違いの始まりだったかもしれません。)
    管理画面はきっちり表示できて、Samba共有も作成できます。
    macOSのTime Machineは最近のバージョンはAFPではなくてSambaが主流になっているのをここで知りました。
    でも、実際に共有に接続しようとすると、どうしても接続できません。
    何か設定が足りないのでしょうが解決できず。
  • 今度は安定版Rockstor V3パッケージと素のCentOS 7の組み合わせなら、と考えました。
    (こちらも手順は Rockstor on vanilla CentOS 7? - General - Rockstor Community Forum にありました。)
    最近のBIOSは良くできていて、起動パーティションをBIOSから指定できるので、マルチブート環境が簡単に作成できます。
    Rockstorに関しては残念ながら、こちらでもOpenSUSEと同じ、管理画面は問題無いのに、共有への接続ができません。
    最初のVMの /etc/samba/smb.conf と比較し、設定を合わせてみても、それだけでは改善しませんでした。

さらに調べると https://github.com/rockstor/rockstor-installer でRockstorの一括インストーラを作成できることが分かりました。
RPMパッケージをインストールした時に行われる設定だけでは足りない設定が入っているはず。
なんとかこれでうまくいきましたので、セットアップ手順を記しておきます。
なおRockstor V4.0.4は次期正式バージョンのリリース候補版でArm64にも対応していますが、ここでは私が実際に試したx86_64の手順のみです。

  1. OpenSUSE 15.2の環境を準備。
    上記Rockstor V4のRPMセットアップに失敗した環境を使用しました(転んでもタダでは起きない、ですね。なお後のRockstorのインストールでパーティションのカスタマイズができずに初期化されるのでこの環境とのお付き合いはここまでになります)。
  2. RockerのISOを作成するためのrocksor-installerを取得。
    # zypper install git wget
    # git clone https://github.com/rockstor/rockstor-installer.git
    # cd
    rockstor-installer/
  3. SUSEのカスタムインストーラ作成ツールkiwi-ngを取得。
    # zypper addrepo http://download.opensuse.org/repositories/Virtualization:/Appliances:/Builder/openSUSE_Leap_15.2/ appliance-builder
    # zypper install python3-kiwi btrfsprogs gfxboot
  4. RockstorインストーラISOファイルの作成、数分かかります。
    # kiwi-ng --profile=Leap15.2.x86_64 --type oem system build --description ./ --target-dir /home/kiwi-images/
  5. 作成されたISOファイル Rockstor-NAS.x86_64-4.0.4-0.install.iso をUSBメモリに書き込みます(Etcherツール等にて)。
  6. ミニPCをこのUSBメモリから起動して、インストール。
    ただし、ディスクのパーティションのカスタマイズはできずディスクの全領域が初期化されます。
  7. これでRockstor V4.0.4が無事起動します。
  8. Wi-FiモジュールAC9560が認識されないので、有線LANで接続し、Wi-Fiモジュールのインストーラを取得。
    # wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-20201218.tar.gz
    # tar xzvf linux-firmware-20201218.tar.gz
    # cp -p linux-firmware-20201218/iwlwifi-9000-pu-b0-jf-b0-* /lib/firmware/

    リブートして反映。
  9. 次のコマンドでWi-Fiに接続。
    # nmcli device wifi
    # nmcli device wifi con [SSID名] password [パスワード]

  10. MacとミニPCをGbit有線LANで直結した時に、ミニPC側の自動IP(APIPA)が設定されないので、次のコマンドで設定。
    2021-01-10修正:ifcfg+wickedの方式では起動後数秒でIPアドレスが消えてしまうので、NetworkManagerでの設定が必要です。
    nmtuiのテキストGUIで設定するか、以下のnmcliコマンドで設定します。
    なお、WindowsやmacOSのようにDHCPがダメならlink localアドレス(APIPA)を設定する、と言う設定はないようです(ipv4.method autoはdhcpの意味)。
    # echo 'BOOTPROTO=dhcp+autoip" >> /etc/sysconfig/network/ifcfg-eth0
    # echo 'BOOTPROTO=dhcp+autoip" >> /etc/sysconfig/network/ifcfg-eth1
    # systemctl enable wicked
    # systemctl start wicked


    # nmcli connection modify "Wired connection 1" ifname eth0
    # nmcli connection modify “Wired connection 1” ipv4.method link-local
これでインストール完了です。
ブラウザで接続して、ホスト名と、管理者ユーザ名・パスワードを設定します。
[Storage] メニューの [Disks] で接続しているディスクを確認し(ソフトウェアRAIDもここで設定)、[Pools] で各ディスクにPoolを紐付け、[Shares] で共有を作成します。
その上で、Sambaサービスを起動し、実際の共有を設定します。

Samba上のホスト名(ここではホスト名をrockstorだとします)はDNSのnslookupやdigコマンドでは確認できなくて、macOSでは、
% smbutil lookup rockstor
Windowsでは、
> nblookup rockstor
とします。
接続は、macOSではFinderから [移動] => [サーバーへ接続...] で
smb://rockstor/sharename
WindowsではWindows Explorerに
\\rockstor\sharename
と指定します(ここで指定できるホストはSambaホスト名、DNSホスト名、IPアドレスです)。

M1 MacBook AirのTime Machineの初回バックアップが有線LAN接続で1時間くらいで完了できました。

Rockstor側は [Rock-ons] メニューからNextCloudもすんなり設定できて、いろいろと活用できそうです。


[2021-01-04] 早速V4.0.5に更新されていました、更新内容はAD連携とdocker network関連です。

2020-12-20

Windows 10 2004/20H2の新しいIMEはあきらめて古いIMEに戻しました

Windows 10は順調に改善を続けているかと思いきや、たまに前のバージョンに戻したくなるような明らかな改悪が紛れ込んでくることがあります。

先日、PCをWindows10 1909から20H2にアップデートしました。
IMEが新しくなり、スマホに近い予測変換が使いやすいと最初は気に入って使っていました。
でもどうしても目に付く問題があり、古いIMEに戻しました。

今回のIMEが早熟だったことはMicrosoft自身も明らかに認めているようで、設定画面に「以前のバージョンのMicrosoft IMEを使う」の項目が堂々と存在しますし、KB4564002(URLがyou-might-have-issuesですよ)でも未解決の問題が残っていることを認めています。
正式バージョンのハズなのに、ちょっと不思議な状況ですね。

わたしが新しいIMEを使っていてどうしても許容できなかったふるまいは以下です。

  • 「CPU」のようにすべて大文字のアルファベットを入力するときは、
    Shift-C、Shift-P、Sift-U と入力して、
    Shiftを離すのが遅れて(あるいは離すのを省略して)Shift-Returnと入力することがよくあります。
    従来のIMEではShift-Returnでも副作用なく確定動作をしていたはずです。
  • 新しいIMEでは、確定動作に加えて余分な改行文字が入力され、さらに悪いことに入力モードが英数に切り替わってしまいます。
  • その上、アプリによって微妙に動作が違い、
    Wordの場合、Shift-Returnつまり強制改行が入力されます。
    TeraPadの場合には、入力位置に改行が入力され、入力した文字は次の行に送られます。
    メモ帳の場合には、これも入力文字の前に改行が挿入され、入力モードが英数に替わり、通常のモード切替ではかなに戻せなくて、Alt-Shift 2回で一度IME無しにしてから日本語IMEに切替えた後でないとかな入力モードに出来なくなります。

勝手に変換モードが変わってしまったり、余分な改行が入力されてしまうは、入力効率に大きく影響します。

以前のIMEのように、詳細なキーカスタマイズができるのなら、まだ回避する手段もあったと思いますが、それも今回は無くなっています。
そのうえ、変換キーの置き換えも、以前はremapkeyなどでレジストリ定義だけで出来ていた(私はF13を変換キーに定義して、CapsLockと右AltをF13にしていました、ちなみにUSキーボードの場合です)のですが、新しいIMEではPowerToysを常駐させないといけなくなっています。

もう少し、パワーユーザの意見を聞くなど、事前に対策を立てられなかったのでしょうかね、と思います。

2020-12-17

低消費電力ミニPC KODLIX GD41を購入

Kodlix GD41の製品ページから
Apple Silicon MacBook Airに続いて、低消費電力ミニPCを購入しました。

古いMac mini 2012は最新OSの対象から外れましたし、何よりとても暑くなります。
上にWi-Fiアクセスポイントを置いていたらMac miniの熱で動作がおかしくなります。

複数のMac、PC、iPhone、iPadの大事なファイルや写真やメールやノートやバックアップを何とか安全に保管する場所がずっと欲しかったのです。
クラウドではすぐに利用枠を超えてしまいます。

そこで、ミニPCでNAS OSを動かして、簡単便利に運用できれば、と考えました。
今どきのNAS OSはコンテナ機能まであって、より幅広いアプリ(スマホ連携できるnextCloudなど)を動かせるようになっています。
NAS専用機(QNAPやSynologyやAsustor)はスペックが低めの割に価格が高いと感じました(スマホ連携アプリや出先アクセスサービスなどはメリットですが)。

Celeron N4000/J4000のミニPCは似たようなのがいくつも出ています。
GD41の購入後に分かった気になる点をまずは挙げておきます。

  • 利点:Celeron N4100、TDP 6Wの超低消費電力。ファンレスで静かでもそれほど熱くなりません。SODIMM 2スロット。内蔵ストレージはM.2×2+SATA 2.5インチ。Gbit NIC×2、USB 3.0×4(うち1つはUSB-C)。
    消費電力が低くて、拡張性がソコソコあります。
    最新ハイスペックのミニPCもありますが、補助的な使い方である以上、ファンノイズと発熱と消費電力が少ないモノが良いと考えました。
  • 付属のACアダプタでは電源が入らず、とても焦りました。USB-Cポートに給電すればきちんと立ち上がりました。このまま使うつもりです。
  • M.2スロットは2つあるのですが、上のスロットは2280サイズ専用かつSATA専用です。下のスロットは2242専用かつPCIe専用です。
    増設用に事前に2242のSATAを準備していたのですが、今は空中接続です(サイズ延長アダプタを付けるつもり)。その上、上の2280のスロットの固定ネジはケースの開口部からは隠れているのでロジックボードを取り出してネジ止めする必要があります(サイズ延長アダプタを固定しておいて短い2242を付け外しする運用の方が使い勝手がむしろ良いかも)。
  • ケースの上蓋は爪ではめ込み式なので、精密ドライバーを差し込めば空けることができます。ロジックボードを完全に取り出すのに必要です。
  • Wi-FiアダプタはCentOS7では認識せず(追加ドライバはまだ試せていません、OpenSUSE 15.2では問題なく認識)。Legacy BIOS起動専用のLinuxインストーラは正常起動せず、EFI対応のインストーラが必要(BIOS設定でLegacy BIOS起動に設定する方法が分からない、おそらく設定できない)。
  • 電源をONしていなくてもUSB3.0 Type-Aポートに電源が供給される。これは都合が良い場合も悪い場合もありますね。設定できれば良いのですがまだ見つからず。

手間をかけずに稼働という訳にはいかず、まだ試行錯誤中ですが、うまい使い方が定まればここで紹介させていただきますね。

[2021-12-01] 自分のためのメモ、メモリ32GBでも認識するとの情報アリ、CPU負荷は小さいけれどメモリを大量に消費するアプリ(コンテナじゃなくてVM、LinuxゲストじゃなくてWindows)の家庭内ホスティングに良さそうですね、max 2.4GHzとのバランスが多少悪いですが。

2020-12-11

今のうちに来年のApple Silicon(M1XまたはM2)を予想してみる

Apple Silicon M1は発売早々から、驚きのパフォーマンスと、省電力で騒然となっていますね。
ビデオの編集もサクサクできる反面、書き出し処理はGPUの馬力に依存するので、案外苦手という結果も出ています。
これは、Apple M1のGPUは8コア 2.6TFlops、対してMacBook Pro 16は40 GPUコア 5.3TFlopsと、まだ性能を伸ばすべき課題となる点が残っているということです。

さすがのApple Ailiconでも各コアの性能を一気に上げたり、1つのチップに今の何倍ものコア数を詰め込むことは物理的にも無理だと考えられます。

Apple Silicon M1の解説をよくよく見ると、CPU/GPU/メモリ/キャッシュが汎用的なひとつのファブリックで接続されています。
このファブリックをチップとチップの間まで延長しさえすれば、2倍4倍の拡張が容易に可能になります。
さすがにローエンドのMacBook Airではスペース的に無理ですが、MacBook Pro 16インチやiMac以上であれば、複数チップ構成はまったく問題ないと思います。

単純倍増方式:
単純に現状のApple M1を複数接続する方式がまず考えられます。
もしかすると現行のApple M1は既にファブリックを外に出す仕組みを持っているかもしれませんよね。
新たなチップを開発せずに、ものすごく簡単に性能を広げることができます。
図では最大構成的に4つのApple M1を接続していますが、2つでも3つでも構わないです。
この方式のデメリットは、CPU/GPU/メモリのバランスを自由に選べない点と、セキュアクレイドルやI/Oインターフェースなど複数は必要ないものまで重複してしまう点です。

機能特化チップ拡張方式:
GPUだけ増やしたい、メモリだけ増やしたいなど、目的によってニーズは様々です。
チップ間ファブリックで接続するのを、何も均質なApple M1に限定する必要はありません。
GPUだけを搭載したチップや、メモリだけを搭載したチップ、さらに1チップ内の搭載数も幅を持たせて用意しておけば、ものすごく自由な構成を組むことができます。

汎用ファブリックは古くはDEC Alpha、最近ではAMD ZENでも使われていて、個別に専用のマルチCPU用のチップセットを一から設計するよりも、ずっとスマートにハイエンドシステムを構成することができると思います。
iPhone/iPadのApple Silicon Axは1年毎に数パーセントの順調な改善を続けていますが、ことApple Silicon Macに関してはこの2年のうちにMac Proレベルまで一気に駆け上ることが期待されていていて、単純なチップ内の改善だけでは到底追いつかないと考えられます。
そこを何とかする「Appleの魔法」は何だろうかと考えてたどり着いたのがこれです。
すでにブルームバーグが、来年のApple Siliconについて20コアとか32コアを予想していますが(9to5Macの解説記事と、Bloombergの元の記事)、さて実際にはどういうものが出てくるか、楽しみが尽きないですね。


[2020-12-15] こんなところにも「ファブリック」が既にありました。
Mac Pro 2019のMPXグラフィックカードの中で、GPUチップ間と、さらに2枚(Duo)のMPXカード間の接続に使われています。

[2021-09-25] 単純倍増方式を仮にM1X-Dualと名付けた記事を書きました。