たまに掃除は必要!熱暴走…

イメージ
 そんなに暑くないのに… 本日、午前中にオンラインで打合せをしていると、突然マシンがダウン。 一瞬、停電か?と思ったもののディスプレイの電源は入っている。 あれっ?と思い、すぐさまノートで打合せを継続。 その間に、再度マシンの電源を投入。 問題なく起動する。 でも、CPU温度がたまたま目に入り、95℃を超えて徐々に上昇していく。 105℃あたりで再度マシンダウン。 これは、熱暴走によるダウンの可能性が高い。 以前、CPUをRyzen7→9にした頃は、60℃〜70℃程度だった記憶がある。 本当はGW中にSSDの載せ替えを行う予定だったけれど、忙しくて先延ばしにしていた。 その時やっていれば、多分掃除もしただろうに…。 ということで、午後からマシンを解体し、掃除をすることに。 ケース本体のFANはホコリがかなり溜まっている。 GPUのFANは問題ない。 電源とCPU FANはひどい。 一旦、CPU FANを取り外し、きれいにする。ついでにCPUグリスも塗り直しセット。 動作確認すると、投入直後で40℃台。 そりゃ、熱暴走も起こすわけだ。 せっかくバラしたので、SSDの載せ替えを実施。 OSは500GBで、ユーザ領域(/home)は1TBを使用しているもののAIのmodelをいくつも落としていたり、DockerのImageが多種置いてあるため、結構容量を食っている。 今回、2TBのSSD( Hanye SSD ¥17,800- で入手済)を用意してあるので、 1TB→2TB, 500GB→1TBと玉突きで移動させることを計画していたので実施する。 本当は、ddコマンドで移すつもりだったのだけれど、3月にお客さんのところで使いそうだったので、 ORICOのクローン機能付SSDアダプタ を入手済。 裸族のSSD版ですね…。1万円程度の品です。 これに、新品のSSDとこれまでの1TBのSSDを差し込んでクローン開始。 そこそこ時間はかかるものの、放置でOK。 ただ、HanyeのSSDについているヒートシンクが引っかかるため、一旦取り外してクローン後取り付ける必要があった。 続いて、500GB→先程の1TBに書き込み。 ただ、1TB(samsungの980pro)が、先程のクローンでかなり熱くなっていたため、速度低下が激しい感じ。1TB→2TBよりも時間がかかった感じ。 ...

Linuxでthin client

LTSPで苦戦した

LTSP(the Linux Terminal Server Project)というのがあって、要はWindowsのターミナルサーバーと同等なものをLinuxだけで構成するというもの。

この設定は、通常LinuxサーバにNIC2枚刺しで、片側をWAN、もう一方をLANに接続。
LAN側はDHCPサーバとして機能して、さらにネットワークブートサービスを提供するように設定するのが一般的なやり方。

この構成であれば、結構すんなり行くらしい。

でも、普通のLAN構成だと、ルータがDHCPを提供している事が多い。このDHCPを止めてLinuxをDHCPサーバとして設定するというのも、無駄な気がするし、既存のネットワークに接続して、運用という場合にリスクが高くなるので、嫌だな…と思い、別の方法を模索していた。

最終的には上手く行ったのだけれど、約1週間ほど苦戦したのでまとめておこうと思う。

既存のLANに設置する方法

いろいろと調べてみると、proxyDHCPを設置すれば、何とか行けるらしい。

最初にやった方法
pxe-pdhcpというproxyDHCPがあって、これを実行してテストする。
ソースのみの配布なので、公式サイトを参考にビルドする。

ただし、コメントにあるように配布されているソースに一部不具合があるので、修正が必要。(トータル2行の修正)
これでもwarningが1つ出ていたけれど、一応ビルドは成功する。(このソース自体古く、新しいものは出ていないので、少々心配。枯れているなら良いのだけれど…)

ところが、何度設定を見なおして、起動を繰り返しても、うまくbootできない。

様々なオプションを試し、再起動をしても上手くいかず、諦めかけていた。

異なる方法を見つけた
次に、pxe-pdhcpとは別のproxyがあることが判明。実はよく知っているdnsmasqがその機能を実装しているらしい。

これなら、使ったことがあるし、設定も経験がある。

ubuntu forumに記事を見つけたので、その通りにテストする。
親切にも、設定の手順とスクリプトなどもまとめられている。

ところが、この方法だけでは上手くブートしない。

そこで、いろいろとerror logを確認すると、途中までbootプロセスは動いていて、最後のところでbusyboxに落ちていることがわかった。

i386: Client drops into BusyBox」の記事を見て、ヒントを得た。
手動でnbd-serverを再起動してやることで、上手く起動するようになった。

手順まとめ

後で、自分も参考にするために、一連の手順をまとめておこうと思う。
$ sudo apt-get install ltsp-server dnsmasq
※ 一般的には、ltsp-server-standaloneを入れろという記事が多いが、それはDHCPサーバも機能させる場合
$ sudo ltsp-build-client --arch i386
これで、配布用のカーネルイメージを作成する。(--arch i386はintel CPU サーバなら省略可能)
$ (cat <<EOF
ipappend 3
EOF
) | sudo tee -a /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
要は、defaultの最後にipappend 3を追加するだけ。エディタで編集してもOK

/etc/dnsmasq.d/ltsp.confをエディタ等で作成する。
#
# Dnsmasq running as a proxy DHCP and TFTP server
#
# See: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
#
#
# TFTP
#
enable-tftp
tftp-root=/var/lib/tftpboot
#
# DHCP
#
# DHCP proxy on this network
dhcp-range=192.168.0.0,proxy
# Tell PXE clients not to use multicast discovery
# See section 3.2.3.1 in http://tools.ietf.org/html/draft-henry-remote-boot-protocol-00
dhcp-option=vendor:PXEClient,6,2b
# Better support for old or broken DHCP clients
dhcp-no-override
# Enable this for better debugging
#log-dhcp
#
# PXE
#
# Note the file paths are relative to our "tftp-root" and that ".0" will be appended
pxe-prompt="Press F8 for boot menu", 3
pxe-service=x86PC, "Boot from network", /ltsp/i386/pxelinux
pxe-service=x86PC, "Boot from local hard disk"
dhcp-rangeのみ、自分のネットワークに合わせて変更する必要がある。
dnsmasqの設定ファイルを適用するために、サービスを再起動する。
$ sudo service dnsmasq restart
なぜか、これだけでは、再起動が上手くいかなかった。(環境のせいかなぁ)
そこで、このコマンドの代わりに、以下を利用。
$ sudo service dnsmasq stop
$ sudo lsof -i:53
$ sudo kill -9 (上記のプロセス番号)
これで、確実にdnsmasqを殺してから、起動する。
$ sudo service dnsmasq start
さらに、この後次のコマンドが必須だった。(これを見つけるのに苦労した!!)
$ sudo service nbd-server restart 
これで完了。

あとは、クライアントをPXE-Bootさせれば、サーバからイメージを取り込んで起動してくれる。

思ったより、早く起動するし、動作は快適。
これで古いマシンであっても、サクサク動くし、インストール作業も不要になるので、期待大!!

もう少し、ノウハウを集めるためにテストしようと思う。

この方法だと、今まで使用しているUbuntuをLTSPサーバとして利用できるので、環境構築が楽だし、ネットワークの設定を変更しなくて良いのが素敵。

ふ〜、1週間苦戦したのも甲斐があるってもんだ〜。

今思うと、PXE-pdhcpを使っても、最後のnbd-serverを再起動すれば動いたかもしれない…。でも、まぁいいか。


コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?