Linux 서버가 재부팅하지 않고 커널을 업데이트하는 방법


13

내 정보에 따르면 리눅스 커널을 업그레이드하려면 재부팅해야합니다. 가정용 컴퓨터를 재부팅하는 것은 문제가되지 않지만 서버와 동일한 것으로 생각하지 않습니다.

커널을 업그레이드 한 후 리눅스 배포판을 사용하는 서버도 재부팅되거나 부팅을 피하기 위해 일종의 트릭을 사용합니까?

답변:


8

커널 변경으로 재부팅해야합니다. 커널을 설치할 수 있으며 경우에 따라 다른 커널의 모듈을 삽입하고 제거 할 수 있지만 권장하지는 않습니다.

서버가 클러스터의 일부인 경우 서버를 재부팅하고 서비스에 영향을 미치지 않습니다. SPOF (중앙 장애 지점)가 없도록 방화벽 / 라우터 클러스터도 만들 수 있습니다. 이를 위해 둘 이상의 시스템에서 공유되는 가상 IP (VIP)를 사용합니다.

이 아이디어를 실험하고 싶다면 QEMU 또는 VirtualBox 등을 사용하여 가상 네트워크를 만들 수 있습니다.


8
라이브 커널 패치는 어떻습니까?
jiggunjer

이 문제는 사소한 패치에만 국한된 것이 아니라 메이저 버전 업그레이드를 의미하는 '업그레이드'에 대한 언급입니다. 따라서 2.6-> 3.0에서 '업그레이드'하려면 업그레이드 작업을 시작하기 전에로드에서 머신을 삭제하는 것이 좋습니다. 커널 변경 후 재부팅합니다. grub / lilo를 변경해야하므로 어쨌든 예의 재부팅을 권합니다.
Ed Neville

15

예, "재부팅"을 수행하지만 kexec_load 시스템 호출을 수행하여 새 커널을 사전로드 할 수 있습니다.

예를 들어 redhat kpatch 와 같이 실행중인 커널을 패치 할 가능성이 있습니다 . 내가 알고있는 모든 작업은 데이터 구조를 변경할 수 없습니다.

물론 lisp 기계는 지난 세기에 실행중인 커널을 패치 할 수있었습니다.


1
kexec새로운 커널을 즉시 부팅하기위한 vanilla도 있습니다 . "재부팅"정의에 따라 비 부트 커널 업그레이드로 간주 될 수 있습니다.
Patrick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.