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

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

내가 아는 한, Linux 커널을 업그레이드하려면 재부팅이 필요합니다. 집에 있는 컴퓨터를 다시 시작하는 것은 문제가 되지 않지만, 서버의 경우에는 그렇지 않다고 생각합니다.

그렇다면 Linux 배포판을 사용하는 서버는 커널을 업그레이드한 후 재부팅합니까, 아니면 부팅을 피하기 위해 몇 가지 트릭을 사용합니까?

답변1

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

실행 중인 커널을 패치하는 것도 가능합니다.빨간 모자 반점예를 들어. 내가 아는 한, 이 작업을 수행하면 데이터 구조가 변경되지 않습니다.

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

답변2

커널을 변경하면 재부팅이 발생합니다. 커널을 설치할 수 있고 경우에 따라 다른 커널에 대한 모듈을 삽입하고 제거할 수 있지만 권장하지는 않습니다.

서버가 클러스터의 일부인 경우 서버를 다시 시작할 수 있으며 서비스는 영향을 받지 않습니다. 단일 실패 지점(SPOF)이 없도록 방화벽/라우터 클러스터를 생성할 수도 있습니다. 이렇게 하려면 여러 시스템 간에 공유되는 가상 IP(VIP)를 사용해야 합니다.

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

관련 정보