質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.02%

  • CentOS

    2349questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • yum

    133questions

    yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

CentOS7 yumのkernelアップデートを再起動せずに適用させたい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 1,381

前提・実現したいこと(環境:CentOS7 と CentOS6)

現在、日本で有数のゲーム系IRC(Internet Relay Chat)のネットワークに属し、サービスを提供しているサーバーの管理人の一人です。
実はサーバーの運営において、定期的に「yum -y update」を使用してkernelを含めすべてのアップデートを行っています。個人運用のサーバーのため常に最新のアップデートを導入することで少しでもセキュリティを上げたいという思惑もありました。
頻度は1~2週間に1度再起動を実施しておりましたが、IRCのネットワークの幹事管理人から、再起動の回数が多いためIRCネットワークを利用する方々に迷惑がかかっているという指摘を受けています。

IRCではチャンネルオペレーターといった権限がクライアント側に提供されていますが、サーバーを再起動してしまうことで「チャンネルが消えてしまう」「オペレーター権限がなくなってしまう」といったデメリットもあり、それらを保持するため長時間接続しているユーザーも多くあります。ゆえにトピックやチャンネルオペレータ権限維持のために常駐するユーザは結構多めで、サーバの再起動などでユーザが意図せずに切断されることでオペレータ権限がなくなったりするチャンネルが続出するため、再起動が多いサーバーをネットワークに入れないようにしていると指摘を受けてしまいました。

実際、私のサーバー以外のほかの管理人さんはほとんど再起動を行いません。ではもしkernelのアップデートが発生し、それを適用しなければならないとなった場合に、一度もIRCサービスを停止させることなく、OSも再起動させずkernelを無停止のまま、新しいアップデートを適用する方法はないのかなと従来から考えていました。

そのことをIRCのネットワークの管理人にどうしているのかといった質問をしたこともあるのですが、明確な答えを頂いた記憶がありません。
また、Linuxのサーバーの運営教育(講座)を受けたときに、当時の講師の先生からシステムアップデートによる再起動はほとんど必要がない。yumによるアップデートやその他ディストリビューションおいてもアップデートはほとんど必要ない。それがLinuxの魅力で安定性を誇る・・・どうたらこうたらの話を聞いたこともあり、実際所属IRCネット幹事管理人さんや他管理人さんも再起動は特にしていないようです。

私自身もIRCの特性は知っているので、可能な限りサーバーの再起動は行いたくありません。

例えば民営のオンラインゲームでは週一の頻度でメンテナンスをしていて、その間はサービスを停止させていますし・・・。私のサーバーは無料提供ですが、有償無償問わずアップデートは必要だと思いますしそれに伴う停止は不可抗力だとも思うのですが、迷惑がかかるからやめてほしいという要請に悩んでいます。

LinuxはWindowsと同じOSであって、ウイルス対策(Clam AntiVirus)だったり改ざん防止システム(chkrootkit)といった導入は必要不可欠だと思うのです。さらにkernelやApacheといったサーバーサービスもアプリケーションだと思うのでアップデートが行われれば新しいヴァージョンのソフトウェアで運用すべきではないでしょうか?

その場合、再起動することですべての接続が切断されて迷惑というのであれば、せめてOSを停止(サーバーを完全停止)させることなく、アップデートを起動した状態で更新・適用させる方法は存在しないのでしょうか?

素朴な疑問ですが、サーバー再起動させることなく適用できる方法があればそれを積極的に利用したいものですが・・・。

試したこと

Apacheなどの各種サービスにおいては「systemctl restart (各種サービス名)」
IRCは「reload」でサーバー無停止のままサービスを提供できます。
しかし「kernel」はどうコマンドを打てば無停止のままアップデート適用ができるのか不明でした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

確かに、もし再起動時にユーザーがアクセスしているとすると、ブーイングが来るのは当たり前だと思います。CentOS7を使っていると、yumが使っているrpmはたとえ走っているプロセスでも、すっとバージョンアップしてくれるので、なんか止めずにやってくれていると思いがちですね。しかし、sshdでも置き換える瞬間にstop,startをちゃんとやってくれているんですよ。見かけは分からないけど、sshdのlogを見ればわかります。

ただ、kernelの走りながらの置き換えはさすがにできないですね。旧のkernelがバージョンアップをしてくれているのですから。

私は次善の策として、事前告知をしてから、rebootをかけるようにしています。rebootがあることを知らないで、勝手に切られるより、事前にわかっていた方が良いかと。

また、再起動の前に、netstat -tu で誰かアクセスしているかどうかのチェックはするようにしています。告知の時間範囲で、しばらくたってもアクセスを止めないユーザーがいたとしたら、マナー違反として、繋がっていてもrebootをかけます。

最近、kernelの脆弱性が結構出てきており、CentOSもできるだけ早くパッチを出してくれるので、更新は嫌でもまめにと言うのがユーザーサービスだと思います。httpdでも同じことだと思います。

ご参考になれば。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/19 20:44

    回答ありがとうございます。お返事遅れてしまい申し訳ありません。
    その後、できる限りサービスを停止させることなく、アップデートの為の再起動については事前連絡する方向で運用しています。

    キャンセル

0

サービスを提供しているから停止できないというのはよくある話ですね。

kernelについては再起動必須と思います。
ubuntuでは稼動したまま更新というのも聞いたことありますが。

updateは必要ですが、今すぐにでも対応が必要というものはそこまで無いと思いますので許される範囲内で計画的にupdate、再起動をかけるってのは駄目ですかね?(半年、1年に1回等)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

RHEL/CentOS 7.2 以降であれば、kpatch が利用できるかもしれません。
https://access.redhat.com/articles/2475321

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.02%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • CentOS

    2349questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • yum

    133questions

    yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。