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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

yum

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

Q&A

解決済

3回答

3090閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

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

yum

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

1グッド

3クリップ

投稿2017/10/28 23:14

編集2017/10/28 23:36

###前提・実現したいこと(環境: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」はどうコマンドを打てば無停止のままアップデート適用ができるのか不明でした。

退会済みユーザー👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

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

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

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

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

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

ご参考になれば。

投稿2017/10/29 01:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/19 11:44

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

0

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

投稿2017/10/30 05:39

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2017/10/29 01:37

hy1234

総合スコア129

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問