Archive for the ‘Linux’ Category


Linuxカーネルパニックとkdump

カーネルパニックとダンプ採取ツールkdumpの話。以下、ほとんどIBMの公開資料からの抜粋なのだが、PDFが重いし、書き出さないと脳に落とし込めないので。。 Linuxカーネルは想定外の状況(カーネルがどのように処理を継続するべきか判断できない状況)が発生すると、panic()と呼ばれる特別な関数を実行する。これをカーネルパニックと呼ぶ。しかし、これはカーネルが自発的にpanic()関数を実行した場合に発生する現象なので、全てのカーネル障害でカーネルパニックが発生するわけではない。カーネルがpanic()関数の実行すら出来ずにフリーズする場合もある。 カーネルパニック発生時のサーバのメモリの内容をカーネルダンプに出力することが可能。RHEL5ではkdumpというツールを利用できるが、所定のrpmや設定が必要。なお詳細は割愛するが、diskdump、netdumpなど他のメモリダンプ機能もある。 kdumpではサーバのメモリ上にあらかじめカーネルダンプを出力するための特別なカーネル(クラッシュカーネル)を常駐させておく。カーネルパニックが発生すると、通常のカーネルからクラッシュカーネルに処理を委譲する。つまり、通常のカーネルには問題が発生しているため、安全のために新たなカーネルでカーネルダンプの出力処理を実施する、というわけだ。 ちなみに「クラッシュカーネルが使用するメモリ領域はサーバ起動時に確保され、通常のカーネルは使用しないように設計されている」そうだ。えーと、でもここには「事象発生時にセカンドカーネルを動作させるため、物理メモリをあらかじめセカンドカーネル用に割り当てておかねばならない」とも。。うーむ、この辺、ちょっと理解できてません。 以下の手順のことかな、、、 kdumpに関する設定ファイル /boot/grub/grub.conf クラッシュカーネル用のメモリ領域を指定。通常はcrashkernel=128M@16Mとする。この場合物理メモリの16MB〜(16+128)MBを使用する。 /etc/sysconfig/kdump 通常は変更必要なし /etc/kdump.conf カーネルダンプの出力方法の指定 大体、ダンプ出力先は/var/crash。これも設定しておく。詳しくはIBMの資料参照。それと、kdumpを利用するにはkdumpサービスを起動しておく必要があるので# chkconfig kdump on としておく。 他にもいろいろあるんだろうけど、今回はこの辺で。 また何か出て来たら追記。 参照URL http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-003FFEF9 http://aozorlinux.exblog.jp/9365765/ 関連記事 Linuxマシン突然再起動に関する備忘録 ※カーネルパニック発生時に自動再起動させる設定など

Linuxアーキテクチャの確認

Linuxアーキテクチャの確認方法について。 カーネル(OS)が32bitか64bitかの確認方法はいろんなところで書かれているが、いくつか方法があるのでまとめてみた。 細かい説明は省いて、とりあえず羅列。 $ uname -m $ arch $ gcc -v 上記実行の結果がi686(やそれに準ずる値)だったら32bit。 x86_64だったら64bit。 が、こんなのあったのか!と目から鱗だったのが、以下のコマンド。 $ getconf LONG_BIT これは、「32」とそのものズバリを回答してくれる。 カーネルが32bitでもCPUが64bit、ということもあり得るようだ。 /proc/cpuinfoのflagsにlm(long mode)フラグがあったら64bitCPUってことらしい。 以下元ネタ。英語の勉強も兼ねて。 http://www.cyberciti.biz/faq/linux-how-to-find-if-processor-is-64-bit-or-not/

gzcatとgzip -dc

Linuxで、gz拡張子がついた圧縮ファイルの中身を、解凍せずに見たいとき。 ファイルの中身が軽いことが分かっていれば、gzcatで。 中身が膨大であることが分かっていたら、gzip -dcでlessかtailにパイプする。 # gzip -dc access_log.1.gz | less # gzip -dc access_log.1.gz | tail -30 Linux記事一覧はこちらをどうぞ ↓ ↓ ↓ Linux-index

tune2fs -lとdumpe2fs

Linuxにおいてファイルシステムの詳細情報を出力するtune2fs -lとdumpe2fs。dumpe2fsには、Journal sizeとブロックグループの情報も表示される、という違いがあるようだ。

Linux: mkfsコマンドなど

Linux新規ファイルシステム作成時のコマンドは、ファイルシステムの種類によりいろいろ。混乱しがちなので、ちょっとまとめてみた。例えばext3ファイルシステムを新規に作成するには、以下3通りのコマンドがある。

sudoersの記述メモ

ユーザへのsudo権限を定義するファイル、/etc/sudoersの記述に関するメモ。NOPASSWDを記述しておくと、sudo実行時にパスワード入力を求められない。コマンドが長い場合や沢山ある場合には見やすくするために改行すればよいが、カンマ区切りを入れるのを忘れないようにw

ディスクリカバリのかなりアバウトなメモ

Linuxマシンにおけるディスクリカバリのかなりアバウトなメモ。

LV拡張時のコマンド e2fsadm

Linuxマシンでlv拡張時に使われるe2fsadmコマンドはそれほど多く使用されてはいないらしく、現在も普及しているものかどうか、また代替となるコマンドがlvextendの他にあるのか、その辺も今イチ。

Linux:LVM拡張手順のメモ-後半

LinuxマシンにおけるLVM拡張手順メモの後半。VGの拡張に引き続き、ここからLVの拡張に入ります。

Linux:LVM拡張手順のメモ-前半

ディスク追加に伴うLVM拡張の手順メモ。メモと言っておきながら長くなりそうなので、前半/後半に分けますw

Linux:LVM解除後のデータ削除

Linuxマシンにおける、LVM解除後のデータ削除、の簡易メモ。ディスクをアンマウントしてから実施する。

Linux:LVM解除のおおざっぱなメモ

LVMの解除や拡張の手順をまとめてみようかと。まずはLinuxマシンにおけるLVM解除の、おおざっぱなメモ。該当ディスクのアンマウント後に実施する。

/etc/fstabでラベル名が変わってしまうバグ?

Linuxサーバ構築時に/etc/fstabの”LABEL=/boot”が、”/boot1″になってしまう現象。OSのバグによるものらしい?

ボリュームラベルとデバイス名の関連付け

Linuxマシンにて、定義されたLABEL(ボリュームラベル)とデバイス名の関連を確認するためのメモ。LABELの対象のデバイス名を調べるには、findfsコマンドを利用。

ファイルシステムのボリュームラベルとは

ファイルシステムのボリュームラベルとは、/etc/fstabで指定す”LABEL=xxxx”のこと。広義にはディスクのパーティションを識別しやすくするため、ユーザが自由につけられる名前。

Linuxファイルシステムにおけるiノードについて

iノードはLinuxのファイルシステムにおいて、ファイルの属性や管理情報を格納している管理領域(インデックス)となる。この管理領域はファイルのデータ(中身)とは別に保存されている。

Linuxファイルシステムにおけるスーパーブロックとは?

Linuxファイルシステムについて。参考書に書いてあった「スーパーブロック」の意味が、分かっているようで分かっていなかったのでメモを。

Linuxにおけるudev、hald、lsusbなど

Linuxにおけるudevに関するメモ。USB接続とホットプラグについても、少し。udevは動的にデバイスを管理する仕組みで、カーネル2.6からサポートされるようになった。

Linux Bonding : NICフェイルオーバーのテスト

引き続き、Linux Bondingについて。eth2がダウンしたらeth4が立ち上がるよね、ってことをテストするとしたら。インターフェイス上げ下げの際に実行するコマンドは、ifconfig up/downでも、ifup/ifdownでもよい。

LinuxでNICのデバイスマップを固定する

Linuxカーネルは、起動時に認識した順番でNICのポートに対してeth0,1…とネットワークデバイス名を割り当てるため、再起動するたびに名NICのデバイスマップが変動してしまい、想定しているマッピングがずれる可能性がある。