これはとある勉強会用の資料です。スライド作るのが面倒臭くなったのでブログにすることにしました。 Systemdとは Systemdは、Linuxの起動処理やシステム管理を行う仕組みです。 Linuxの起動処理 Linuxの起動はざっくりと以下の4段階によって行われます。 電源投入によりBIOSが起動する。 BIOSからブートローダーが呼び出される。 ブートローダーがLinuxカーネルを起動する。 Linuxカーネルがinitプロセス(PID 1)を起動する。 このinitプロセスが、Linuxの起動処理を司ります。古くから使われていたのがSysvinitで、Sysvinitの代替えとして近年Ubuntuなどで採用されていたのがUpstartです。そしてFedora 15やCentOS 7、Red Hat Enterprise Linux 7で採用されたのがSystemdです。 System
今回は、CentOS 7で採用されている新しいログ管理の仕組み「journald」を取り上げます。またjournaldとrsyslogとの連携やシステム全体に渡って様々なログを収集するsosreportについても簡単に触れます。 CentOS 7におけるログ機構「Systemd Journal」を使いこなす CentOS 7は、ログの管理を行う新しい仕組みが導入されています。従来のCentOS 6系では、長年親しまれてきたsyslogがベースのログ管理手法が採用されていましたが、CentOS 7からは、ログに関するより細かい指定や操作を行うことができるようになっています。CentOS 7でのログ管理は、systemdが担当しています。サービス名は、「systemd-journald.service」です。一般的には、「journald」と呼ばれています。CentOS 6までのsyslogで
このブログ記事は2014年5月21日に行った私の講演の内容に基づいています。 ここ数年、GNU/LinuxのディストリビューションはSysV initを避ける傾向にあり、代わりに多種多様な新しいinitシステムへと移行が進んでいます。SysV initに満足しているユーザにとっては、これは予想外の流れでしょう。問題なく使えるのに、なぜ多くのディストリビューションはSysV initに背を向けているのでしょうか。 この記事ではSysV initの問題点と、それに対してsystemdがどんな解決法を提供しているのか説明してみようと思います。 私は特にsystemdの大ファンだというわけではなく、ただ広く使われているツールだという認識以上の思い入れは無いことだけお断りしておきます。 initシステムの役割とは何か? コンピュータが起動する時には、ビルトインされたファームウェア(コンピュータの場合
どうもみむらです。 先日まで某学会に出席していた関係で遅くなりました。 学会に向かう朝に Twitter を眺めていたら CentOS 7 が出た! というツイートが流れていまして ・・まじすか! もう CentOS 7 出たんか! でも時間が無い・・! と思いながら、学会に行って、帰ってきました。 今日は普段の行いが最高に悪かった為か、 頭痛なり腹痛なり、とりあえず若者が掛かる「痛」のある程度の症状が出て 日中はダウンしていました。 日中は布団とトイレの往復を何度やって、段々と落ち着いてきたのでやろうか、と。 ・・・そんなわけで今に至る訳です。 閑話休題 それではアップデートを。 良く纏まっているウェブサイトがありますので、基本的にはこちらに従う感じで。 http://abi.io/blogs/in-place-upgrade-centos-6-5-to-7-0-using-preupg
8. SIGKILLしたらどうなるか # systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: active (running) since Thu 2014-07-24 03:57:50 JST; 1min 21s ago Main PID: 1311 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─1311 /usr/sbin/httpd -DFOREGROUND ├─1451
CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s
systemdは、/proc/cmdlineをパースして、もし、その中に"debug"という文字列を発見した場合、大量の冗長なデバッグメッセージをdmsegに出力する。これは様々な問題を引き起こす。まず、"debug"というあまりに一般的すぎる文字列に勝手に反応してしまうことがひとつ。dmseg、すなわちカーネルのリングバッファーをsystemdの冗長なデバッグメッセージだけで溢れ返させてしまうことがひとつ。そして、なぜかLinuxカーネルのブートに失敗してしまうことがひとつ。 Bug 76935 – Do not parse "debug" command line parameter カーネルコマンドラインに"debug"を与えると、systemdによりパースされる。適当なassertに引っかかると、こんな風にぶっ放される。 [ 150.308000] systemd-journald
5. Open Cloud Campus 5 Linux女子部 systemd徹底入門! Linuxの起動プロセス (1) 「システムBIOS」が起動ディスクからブートローダ(GRUB)をメモリに読み込んで実行。 GRUBは起動カーネル選択画面を表示して、指定されたカーネルと初期ラムディスクをメモ リに読み込んだ後に、カーネルを実行。 カーネルは、初期ラムディスクの内容をメモリ上のラムディスク領域に展開して、「initス クリプト」を実行。 – 初期ラムディスクには、ルートファイルシステムへのアクセスに必要なデバイスドライバと「init スクリプト」が含まれます。 ブートローダ (GRUB) /bootファイルシステム ② ブートローダが 読み込み ③ ラムディスク領域 に展開 起動ディスク物理メモリ Linuxカーネル 初期ラムディスク Linuxカーネル 初期ラムディスク
Linuxの起動処理は、これまでinit/upstartと呼ばれる仕組みで行われていました。Red Hat Enterprise Linux 7 (RHEL7)では、これが、systemdと呼ばれるまったく新しい仕組みに置き換わります。Fedoraでは、すでに先行してsystemdが採用されていますが、この連載(?)では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明していきます。今回は、systemdの動作の基礎となる「Unit」の概念を理解します。 systemdを採用したFedoraでLinuxの基礎を学びなそう!という方には、「「独習Linux専科」サーバ構築/運用/管理――あなたに伝えたい技と知恵と鉄則」がお勧めです。(^^/ systemdの考え方 参考資料 ・Rethinking PID 1:systemdの開発者であるLennart
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く