CPU情報(型番、物理数、論理数、コア数)の調べ方
サーバのCPU情報を確認する必要があり、確認方法を調べたので備忘録として残しておきます。
/proc/cpuinfoの参照
型番の確認
$ grep 'model name' /proc/cpuinfo | uniq model name : Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
今回の環境では、CPUはXeon E5-2630L v2を利用していることがわかります。
OSが認識しているCPU数(論理数)
# grep processor /proc/cpuinfo processor : 0 processor : 1 processor : 2 processor : 3 processor : 4 processor : 5 processor : 6 processor : 7 processor : 8 processor : 9 processor : 10 processor : 11
0から11までの合計12個が認識されていることがわかります。
# grep 'siblings' /proc/cpuinfo | uniq siblings : 12
シブリングの項目でも、認識数が確認できます。
実際に搭載されている物理数
$ grep 'physical id' /proc/cpuinfo | uniq physical id : 0
論理数が12個なのに対して、物理数は1つです。
コア数
$ grep 'cpu cores' /proc/cpuinfo | uniq cpu cores : 6
1 CPUに6つのコアがあることが確認できます。しかしこれでは1 [cpu] x 6 [core/cpu] = 6なので、OSで認識されているCPUの数の12と合致しません。 今回のCPUではHyper-threadingが有効となっていて、1つのコアを2つのCPUとして認識しているためです。 コア数がシブリングと同一の値であれば、Hyper-threadingは無効で動作しています。
lscpu
型番以外の情報はlscpuでも確認できます。
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 12 On-line CPU(s) list: 0-11 Thread(s) per core: 2 Core(s) per socket: 6 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 62 Stepping: 4 CPU MHz: 1871.906 BogoMIPS: 4799.89 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 15360K NUMA node0 CPU(s): 0-11
CPU(s)で論理数、Thread(s) per coreでHyper-threading時の1コアあたりの認識数、Core(s) per socketで1CPUあたりのコア数、Socket(s)でCPUの物理数を表しています。
Juniper SRXのrootパスワードリカバリ・初期化
以前、お遊び用にJuniperのSRX100をヤフオクにて入手しました。 しばらく使っていなかったのですが、JUNOSの動きを確認したいことがあり久しぶりに引っ張り出してきて起動させたところ、ログイン情報を忘れてしまっていたため、ログインすることができませんでした。このエントリはrootパスワードのリカバリから設定初期化までのメモとなります。
パスワードリセット方法
こちらの手順に沿って対応させて頂きました。
ルートパスワードを忘れてしまった場合の復旧方法は?
- 電源投入し、boot loaderに入る 起動時に以下の表示が出たら、スペースを入力してブートローダーのプロンプトへ入る。
Loading /boot/defaults/loader.conf /kernel data=0x9ecbac+0xd8890 syms=[0x4+0x7dca0+0x4+0xb3e02] Hit [Enter] to boot immediately, or space bar for command prompt. Type '?' for a list of commands, 'help' for more detailed help. loader>
- リカバリーモードで起動する
loader> boot -s
- コンフィギュレーションモードに入る
root> configure
- 新たにパスワードを設定し、反映させる
root# set system root-authentication plain-text-password New password: <新しいパスワードの入力(アルファベット小文字・大文字、数字、記号を少なくとも2種を組み合わせる)> Retype new password: <入力したパスワードの確認> root# commit
- ログアウトし、リブート
root# exit Exiting configuration mode root> exit Reboot the system? [y/n] y
リブート後、新しいパスワードでログインできることを確認して完了です。
設定の初期化
- コンフィグとログファイルの初期化 復旧したrootパスワードでログイン後、下記コマンドでCLIモードに入り、初期化します。このコマンドでは、各種ログファイル等も削除されます。
root@% cli root> request system zeroize
実行後、リブートがかかります。
- rootパスワード再設定 先ほど設定したrootパスワードも消えているので、再度設定します。
root# set system root-authentication plain-text-password
これで作業は完了です。
VMWare上のLinuxのカーネルを再構築
最近Linuxのカーネルを再構築することがあったので,その作業行程をメモとして残しておきます.
カーネル再構築
あらかじめ必要なパッケージなど
cursesはmenuconfigを使う場合に必要になります.
# apt-get install build-essential libncurses-dev ncurses-dev
カーネルのソースコードの入手
2012/1/24 時点での2.6系の最新バージョンは2.6.39.4でしたが,
どうもうまくいかなかったので今回は2.6.32.27を入れることにしました.
2.6.38.xは起動が怪しく,2.6.39.xは起動できず,問題も解決できなかった
ので,同じマイナーバージョンのリビジョン違いで試しています.
ソース入手先
ftp://ftp.kernel.org/pub/linux/kernel/
# wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.27.tar.gz
カーネルのビルド
# tar zxf ./linux-2.6.32.27.tar.gz # cd linux-2.6.32.27
古い.configなどが残ってるかもしれないので,一度初期化しておきます.
# make mrproper
元のカーネルから設定を引き継ぐ場合,以下が必要です.
make oldconfigをした際に対話型の設定が始まりますが,数が多いので
ひとまず全てenterで設定を終えてから,make menuconfigで必要な箇所は変更します.
# cp /boot/config-2.6.32-5-amd64 .config # make oldconfig
カーネルに組み込む機能やモジュールとして読み込む機能を選択します.
VMWare上で動作させる場合,deprecated sysfs featuresを有効にする
必要があるそうです.また,iptablesやipvs関連の機能を使う予定がある
ため,関連する項目は一通りチェックをつけておきます.
# make menuconfig General setup enable deprecated sysfs features to support old userspace tools Networking support Networking options Network packet filtering framework (Netfilter) Core Netfilter Configuration IP: Netfilter Configuration IPv6: Netfilter Configuration IP virtual server support
これで,選択した内容の.configが生成されるので,ビルド,インストールします.
# make # make modules_install # make install
初期RAMディスク(initrd)の作成
# update-initramfs -c -k `make kernelrelease`
再起動して確認
$ uname -r 2.6.32.27