Linux

閑話休題

Xen こちらがしばらく止まってしまっているので再開せねば。といいつつ、実はXenServerを裏で触っていたりします。全体的に、まだ多少VMwareに後れをとっているものの、基本機能は必要十分。はてさて。 Veeam Backup 増分バックアップ、レプリケーション、フ…

Xen - CentOS Domain0にFedora DomainUを導入する…直前まで(^_^;)

Xenでは、Domain0が各種ハードウェアデバイスを制御しており、DomainUの各仮想マシンはDomain0が提供する仮想的なデバイス(VBD[Virtual Block Device]/仮想ブロックデバイス)を通じてハードウェアデバイスを使用する。Linuxでは各種ハードウェアデバイスへの…

Xen - CentOS5環境に導入したXenにCentOS仮想マシンを導入する

DomainUに対してインストールメディアを割り当てる場合、URLでの指定しかできない。よって、Webサーバを用意してインストールCD/DVDドライブをhttp経由で認識させられるように準備する。私の場合はなんといっても手元のPCがMac Bookなので、Mac OSのWeb共有…

Xen - CentOS 5 への導入のつづき

再開っ(^_^;)。 で…、Xenをyumを使ってインストールした場合、grub.confの修正は自動的に実施してくれるものの、標準で起動するようには設定されない。 [root@localhost ~]# cat /boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you …

Xen - CentOS 5 への導入

XenのCentOSへのインストールは非常に簡単。yumコマンド1つでインストールすることができる。 [root@tkcent1 /]# yum install xen kernel-xen0 kernel-xenU Loading "installonlyn" plugin Setting up Install Process Setting up repositories extras 100% …

kernek:"Network" (3) sk_buff構造体主なメンバー/netstatによるTCPのステータス

sk_buff構造体の主なメンバー メンバー名 内容 sk ソケットバッファを持つソケットオブジェクト tstamp パケットの到達時刻 dev データ入出力先デバイス名 h トランスポート層ヘッダー(=TCP/UDPなど) nh ネットワーク層ヘッダー(=IP/ICMPなど) mac データリ…

kernel:"Network" (2) Linuxネットワークの基本的な流れ

階層 処理 ユーザアプリケーション 送信データを生成する VFS(Virtual File System) ソケットバッファを生成する TCP制御 ソケットバッファにTCPヘッダーを挿入する IP制御 ソケットバッファにIPヘッダーを挿入する ネットワークドライバ ソケットバッファに…

kernek:"Network" (1) ネットワークの基礎中の基礎

MACアドレス Media Access Controlアドレスの略称。NIC(Network Interface Card)に固有に割り当てられている番号。各NICには個別のMACアドレスが割り当てられており、重複することはない(ことになっている)。48bit/6オクテットの2進数で構成されており、前半…

kernel:"process" (8) タイムスライスを使い切った場合

タイムスライスは、task_struct構造体のtime_sliceメンバーに格納されている processがタイムスライスを使い果たした場合のqueueの移動はscheduler_tick()関数により処理される scheduler_tick()関数はタイマー割り込みにより定期的に実行され、タイムスライ…

kernel:"process" (7) Order One Scheduler (O(1)スケジューラ)の実装

O(1)スケジューラの実装は、shceduler()関数をコアとしている scheduler()関数は200行程度の小さなプログラム ソースコードは"kernel/sched.c" 実行queue runqueue構造体は、CPUの数の分だけ用意される runqueue構造体において、prio_array構造体のメンバー…

kernel:"process" (6) Order One Scheduler (O(1)スケジューラ)の特徴と構造

kernel2.6では、"O(1)スケジューラ"というスケジューラが採用されている kernel2.4まで使用されていたスケジューラでは、process数の増加に伴ってスケジューラ自身のオーバーヘッドなどによりパフォーマンスの低下が発生することが指摘されていた O(1)スケジ…

kernel:"process" (5) スケジューリングアルゴリズム

スケジューリングアルゴリズムの例 FIFO (First In First Out) タイムスライスに関係なく、processを順番に実行する方式 process A, B, C, Dが順番に開始された場合、Aを実行し、Aが終了したらB、Bが終了したらCというかたちで順番に実行する 弱点は、非常に…

kernel:"process" (4) プロセススケジューリング概要

複数のprocessを並列で実行するためには、効率的な処理のためにプロセススケジューリング機能が必要 プロセススケジューリングは、どういう機能を優先したいかによってスケジューリング方法が異なる たとえば、CPU計算速度の高速化であったり、I/O処理のスル…

kernel:"process" (3) processのサイクル

processの生成 コマンドやプログラムを実行するためには、fork()システムコールを使用して新しいprocessの生成を行う fork()システムコールを受けて、kernelはdo_fork()関数を呼び出し、子processのprocess idを取得、子processのtask_struct構造体の生成、…

kernel:閑話休題

すでにご理解頂けているかもしれませんが、ここでのLinuxのお勉強は現在以下のMOOKをベースにしています。Linuxカーネル徹底理解 (日経BPパソコンベストムック)作者: 日経Linux出版社/メーカー: 日経BP社発売日: 2007/07/19メディア: 雑誌購入: 1人 クリック…

kernel:"process" (2) processの状態

processの状態 processが生成されると、まず待ち状態となる 実行待ち TASK_RUNNING kernelからCPUリソースが割り当てられるまでprocessは待ち状態となる 実行中 TASK_RUNNING kernelがCPUリソースを割り当てると、processは実行中の状態となる/割り当てられ…

kernel:"process" (1) processの概要

LinuxはマルチタスクOSであり、あるプログラムを実行している最中に他のプログラムを実行することができる シングルタスクとマルチタスク シングルタスクの場合、あるプログラムを実行している最中は他のプログラムを実行することはできない シングルタスク…

kernel:about "割り込み/シグナル"

kernelはCPUリソースを最大限有効活用するために1つの処理の完了を待たずに他の処理を行う kernelはCPUに対して"割り込み"を指示することにより、CPUは現在の処理から他の処理の実行へと切り替えを行う 割り込み 割り込みとそれに対応する処理はkernelの起動…

kernel:about "Network"

aboutレベルではあまり面白くないので、ここはさらっと。 経路情報:IP / Mac TCP/UDP:TCPがデータの順序を保ち受信確認を行いながら送受信が行われるのに対し、UDPはコネクション管理をいっさい行わず、送信先を特定しない。それぞれ、データの整合性や完…

kernel:about "File System"

kernelは様々なデバイスに保存されるデータやファイルを一貫した方式でアクセスするためのFile Systemを提供する HDDやCD-ROM、USBデバイス等の様々なデバイスをファイルとして扱うインターフェイスの役割を持つ HDDにおけるEXT3やNTFSなどの様々なファイル…

kernel:about "Memory"

kernelは物理メモリ管理、仮想メモリ管理、スワップ管理の3種類のメモリ管理機能を持つ 物理メモリ管理 kernelは起動時に自身が実行される環境が持つ物理メモリ量を確認し、kernel用のメモリ空間とkernel以外用のメモリ空間を管理するための管理テーブルを作…

kernel:About "Process"

Linuxにおいて、kernelはプログラムを"Process"という単位で扱う 複数のプログラム(=Process)を平行して同時に実行するために、kernelはProcessを切り替えながら処理を行う kernelは実行中のProcessを停止/開始するタイミングで、レジスタの内容を退避した…

kernel:Linuxの歴史

YYYY/MM Version Topix Size[Ksteps] 1991/09 0.01 インターネット公開 - 1994/03 1.0 Linux初の安定板公開 86Ksteps 1994/04 1.1.0 以降、バージョンの小数点第1位が奇数のものを開発版、偶数のものを安定板として扱う - 1995/05 1.1.95 Version1.x最終リリ…

kernel:Tools & Files(1) システム情報取得

システム情報取得 システム全体 /var/log/messages 一般的なシステム情報を記録するログファイル top CPU使用率、Process統計値、Memory使用状況などシステムの全体的な情報を表示する /proc/stat kernelやシステムの統計情報ファイル "/var/log/messages" […

kernel:Network tuning - 受信バッファ・メモリ ソケット用メモリ

TCP/IPネットワークにおいて、チューニング対象となるパラメータは以下の2つがある 受信バッファ・メモリを増やす ソケット用メモリを増やす メモリを増設した場合や、Gigabit Ethernetに変更した場合等に調整すると効果が高い 受信バッファ・メモリを増やす…

kernel:Memory Manage(4) OOM Killer

空きメモリを確保する仕組みとして"OOM Killer(Out of Memory Killer)"というものがある OOM Killerは、空きメモリが足りない場合に強制的にProcessを終了させて強引に空きメモリを確保する OOM Killerは、空きメモリが確保できないためにシステム全体が停止…

kenrel:Memory Management(3) posix_fadvise()

アプリケーションごとに最適なPage Cacheの容量は異なる たとえばストリーミングサーバの場合、シーケンシャルなデータの書き出しをするため、Page Cacheは必要ない kernel2.6では、アプリケーション側からデータのアクセスパターンをkernel側に宣言するシス…

kernel:Memory Manage(2) min_free_kbytes

Writeback処理の完了=Page Cacheの解放、ではない Writeback後、Page回収処理により実際にメモリ空間が解放される 頻繁にPage回収処理を実行することにより、無駄なCache Memoryを削減し、メモリ空間の確保(=効率的なメモリの使用)ができる 空きメモリ容量…

kernel:Memory Manage(1) Page Cache & Writeback

Linuxでは空いているMemoryは積極的にファイル用のCacheに使用する MemoryはPageという単位で分割して管理されており、Cacheに使用されているMemoryをPage Cacheと呼ぶ Memoryのチューニングのポイントは無駄なPage Cacheを残さないこと Page Cacheにデータ…

kernel:I/O Schedule

CPUリソースの割当スケジュールとは別に、デバイスI/Oもスケジューラがある(I/Oスケジューラ) kernel2.6がサポートするI/O Scheduler Name 内容 Complete Fair Queueing(CFQ) ProcessごとにQueueを割り当て、各Queueに均一の帯域幅を、I/O要求に優先度を設定…