古のマシンにAlmaLinux9を突っ込む
この記事は2022/08/01に作成されました。
弊社ではいくつかのサーバーを構築しており、社内向けのサーバーも複数台存在する。その中の1台のスペックがキツイ状態になっていたので、実験用として使っていた部分を抜き出して1台新構築することにした。今だとクラウド上でサクッと作成してー、とか言うのが通例だろうが、実験目的で使うものにそんな従量課金みたいなものはできぬ。余っている古のPCをちょっとスペックアップしてサーバーとして仕立て上げた次第。そのときの備忘録みたいなもの。
とりあえず、サーバーのスペック。4C8TのCorei7 2600Kマシン。およそ10年位前のマシン。倍率非固定のK印CPUなので、定格3.4GHzのところを4.0GHzにして稼働させる。運が良ければ4.0GHzで、という感じでも無く、負荷があれば直ぐ4.0GHzまで上がる感じ。4.4GHzまで上げていたら、KernelPanicを起こしたので、4.0GHzで様子見。
メモリはDDR3の24GB。4GBが4枚だったので2枚抜いて8GBを2枚刺した。Corei7なのでECC無し。
ディスクはSSDを2台新調。10年前のマシンだからM2など無いため、SATA接続。まぁ、サーバーはM2スロットなんて使わないぜ(汗
サーバーでM2接続のできる奴ってあるのかどうか。サーバー系だとPCIe側に直接繋いでいる印象だが?
SSDでRAID1は意味があるのか分からないが、一応念のため。SSDを別のものにしておくのがベストなんだろうけど、いろいろな値を合わせるのが面倒なので(多分HDDよりは楽)、信用のCrucial製を2台。
インストールするOSはAlmaLinux9にした。Ubuntuでも良かったのだが、もともとRPM系で育ってきてしまっているので、何も考えないとRPM系を選択してしまう。RHEL互換OSだとRockyLinuxかAlmaLinuxが選択できるが、このタイミングではRockyはまだ出ていなかったので、AlmaLinuxを選択。
ネットからBootイメージだけ落としてきて、USBメモリにBalenaEtcherを使って入れる。楽ですね。後はUEFIでUSBから起動するように変更して起動。Almalinux9のインストール画面が出てくるので、インストール開始。
パーティーションはRAID1を構築するように設定。区割りは自動だとルートが少なくhomeに多く割り振られるが、ルートが多い方が後が楽なので、homeを切り捨てて、ルートに割り振るように設定変更。Swapは一応40GB割り振る。24GBのメモリがあるので、そこまで要らないとは思うのだが、Linuxは比較的Swapを多用するような印象があるため、少し多めに割り振っておく。
インストールするパッケージは最小限で入れておくのがベストな気がする。後から必要なものを入れた方が無駄が少なくて済む。特に何も面倒なところは無くインストール開始。Linuxのインストール自体がGUIでできて、USB接続のマウスまで使えるのがほんと昔からしたら不思議でしかない(今やUEFI(BIOS)ですら利用可能ですが)。
SMTを有効にしてインストールしようとしたら、SMT有効にしている場合の脆弱性などを確認しろ、と表示が出る。本利用ならSMTを無効にするところだが、テスト用なので、そのまま有効にしてインストール続行。ちなみにSMTを無効にしたい場合は、UEFIで無効化できるが、メーカーマシンなどではUEFIをあまり触れないようにしてあるので、無効化できないかもしれない。その場合は、Linuxのkernelパラメーターで無効化できる。以下を入力すればSMT無効でLinuxカーネルが動作する
# grubby --args=nosmt --update-kernel=DEFAULT
センサー系の設定
Almalinux9が起動したらログインして設定開始。
諸々は普通に設定できるので、他の設定記述などを参考にして設定すれば良いと思う。
dnfでアップデート
ネットワークの設定
sudoの設定
SSHサーバーの設定、Key認証の設定
SELinuxの設定
各種パッケージのインストール(今回はApache,PHP,MySQL,Python,Dockerなど)
などを実施。
CPUの発熱などを確認するため、lm_sensorsをインストールしておく。
$ sudo dnf install lm_sensors
lm_sensorsはdetectしないと使えないので、
$ sudo sensors-detect --auto
これでセンサーを見つけて貰うと、センサー情報が利用できるので、確認。
$ sensors
CPUの温度などを確認できる。マシン内の温度だけでなく、CPUファンの回転数、システムファンの回転数、電圧なども搭載されているセンサーチップによって確認が可能。インストール直後は適宜確認した方が無難でしょう。
たまに確認しつつ、CPU温度や筐体内温度があまりに高温が続くようであればマシン環境を見直すことも必要。CPU温度が一定を超えたときの対応はほとんどのマシンでクロック数を下げて温度を下げるように動くので、一時的なものであれば放置でOK。
CPUクロックなどはcpupowerで確認可能。Almalinux9では最小インストールでも勝手に入っていた。
$ cpupower frequency-info
これで現状のコアごとのクロック数などを確認することが可能。
旧バージョンとの違い
旧バージョンと違うのがSELinuxの設定で、以前は
# setenforce 0
だったり、/etc/sysconfig/selinuxに記述することで無効化していたが、今は
# grubby --update-kernel ALL --args selinux=0
とgrubのカーネルオプションに追加する必要がある。当然grubのカーネルオプションに追加しているため、マシンの再起動が必要。パフォーマンスも向上しているようなので、SELinuxを使っても良いと思うが、テスト用途だとどうしても無効の方が楽というのが先に走る。
SSHとの接続
他のOSに対してSSHで接続するとエラーが表示されることがある。SSLなどのバージョンが変わったためなのでこのまま維持するのがセキュリティ的にも望ましいのだが、どうしても古いマシンからファイルを貰う必要があるので、セキュリティレベルを下げる。
$ sudo update-crypto-policies --set LEGACY
逆にセキュリティを高めたいなら、
sudo update-crypto-policies --set FUTURE
や
sudo update-crypto-policies --set FIPS
にすることもできる。この辺の違いは、RedHatEnterpriseLinuxのドキュメントに詳しく出ている。
まとめ
昔はLinuxのインストール自体、複雑だった印象があるが、今はほとんど自動で行ってくれるしほとんどのハードウェアも自動的に認識してくれるため、インストールに手間取ることはあまり無いはず。
Linuxはあまり設定などに大きな変更がないが、バージョンによっては一部上手く設定が活かされないことがあるため、Googleなどで調べていく必要はあるかもしれない。今回はAlmalinux9で填まるところだけ書いておいたが、ほかはほとんどRedHatEnterprise8やCentOS8の情報が活かせるだろう。
Almalinux9、古いマシンでも問題無い速度で動作してくれ、現状では安定しているのでサーバー用途としてはオススメである。古いマシンが余っていたら是非。
CTO/sekiguchi