Kernel

OSの中核となる基本コンポーネントプログラム。
実デバイスとプログラムの中継をしたり、デバイス制御を行う為に必要となる。
 
Linuxの場合は Kernel Archives で公開されている物を使っている事が多い。
他UNIXの場合は独自ビルドしたカーネルを利用している場合もある


PCI-E ASPM

PCI-Expressには省電力機能としてASPM(Active State Power Management)が実装されている。
対応しているマザーボード・OSを利用する事で、利用していないPCI-Eデバイスを停止させて省電力化する事が出来るが、
対応していない環境や仮想環境で利用すると、意図しないシステムダウンが発生する。
 
特に、古いサーバに最新のOSを利用した時に発生する事が多いのと、
ログが残らずにシステムダウンする為、原因特定に時間のかかる場合が多い
システムダウンを回避するには、ASPMをDisableした後にOSを再起動をする必要がある。
 

 ASPMの停止手順


Jool NAT64

IPv6限定ネットワークからIPv4へ通信を行うには様々な手段が存在するが、
その内の一つとしてDNS64+NAT64によるL3+L4変換が存在する。
Linuxで実装する場合はDNSキャッシュサーバをDNS64モードで動作させた上で、
KernelModuleにNAT64を組み込む必要がある。
 
Joolは、LinuxKernel用NAT64モジュールの一種であり、
RedHat、Debian、openSUSE、Raspbianなど様々な環境で動かす事が出来る。
 

 Jool組み込み方法


Kernel Build

最新のKernelを利用する時や、通常はサポートしていないモジュールを使う時、
Kernelを自前で再構成(ビルド)する事がある。
ビルドはスクリプトで自動化されているが、新規モジュールのON/OFFは自前で設定する必要がある。
なお、最新Kernelの機能追加・バグ修正はLKMLで公開されているので読んでおく。
 

 ビルド手順


ip conntrack

コンテンツ配信サーバ・ロードバランサ等でiptablesを用いてFirewall制御を行っている場合、
iptablesのセッション管理テーブルを使い切り、次の様なエラーがログが出る事がある。

ip_conntrack: table full, dropping packet
nf_conntrack: table full, dropping packet

この状態では新規のセッションを張る事が出来なくなり、NW通信速度が極端に低下してしまう。
事前に管理テーブル最大値を拡張する事でエラー発生を抑制する事が出来る。
 

 パラメータ


nonlocal bind

LinuxKernelではローカルバインドしているIPアドレスのみ接続待受(LISTEN)出来るが、
keepalivedでHA構成を取る場合、バインドしていないIPアドレスでLISTENするケースがある。
その時は、sysctl.confに下記を追記する事で、非バインドIPアドレスでもLISTEN可能になる。
 

 パラメータ