[Linux] 서버 재부팅 없이 커널 업데이트하는 방법 (Livepatch)

서버를 운영하다 보면 보안 패치나 커널 업데이트는 꼭 필요하지만,
재부팅 없이 적용할 수 없을까? 하는 고민이 생기죠.

특히 24시간 중단되면 안 되는 서비스를 운영할 때는
한 번의 재부팅도 큰 리스크가 됩니다.

이럴 때 유용한 기능이 바로 Livepatch (라이브패치)입니다.

Livepatch가 무엇인지, 어떻게 적용하는지
Ubuntu와 Red Hat 계열 서버를 기준으로 살펴보겠습니다.

 


1. Livepatch란?

Livepatch는 커널을 재부팅하지 않고 보안 패치를 적용할 수 있게 해주는 기능입니다.
커널 코드의 일부분을 실시간으로 수정하여 시스템의 중단 없이 문제를 해결할 수 있죠.

현재 지원하는 대표적인 서비스는 다음과 같습니다:

  • Canonical Livepatch – Ubuntu에서 제공
  • kpatch – Red Hat, CentOS 등에서 사용
  • kGraft – SUSE 계열에서 제공

 

2. Ubuntu에서 Livepatch 사용하기

Canonical에서 제공하는 공식 Livepatch 서비스를 사용하면 아주 간단합니다.

sudo snap install canonical-livepatch
sudo canonical-livepatch enable [토큰]

토큰은 ubuntu.com/livepatch 에서 Ubuntu 계정으로 로그인 후 받을 수 있습니다.

canonical-livepatch status

적용 여부를 확인할 수 있습니다.

⚠️ 참고: 무료로는 최대 3대까지 등록 가능하며, 서버는 LTS 버전이어야 합니다.

 

3. Red Hat 계열 (RHEL, CentOS)에서 kpatch 사용하기

Red Hat Enterprise Linux에서는 kpatch라는 도구를 사용해 라이브 커널 패치를 적용할 수 있습니다.

설치 예시 (RHEL 8 이상):

sudo dnf install kpatch
sudo systemctl enable --now kpatch.service

Red Hat Customer Portal에서 패치 모듈을 받아 설치할 수 있습니다.
엔터프라이즈 고객에게는 공식 패치가 주기적으로 제공됩니다.

⚠️ 커널과 kpatch 버전의 호환성 확인이 중요합니다.

 

4. 라이브패치의 한계와 고려사항

  • 모든 커널 업데이트를 Livepatch로 처리할 수 있는 것은 아닙니다.
  • 보안 패치 중심으로 제한적인 커널 코드 변경만 허용됩니다.
  • 완전한 커널 업그레이드가 필요한 경우에는 여전히 재부팅이 필요할 수 있습니다.

 

다운타임 없이 보안성 유지하기

Livepatch는 재부팅 없이 커널 보안 패치를 적용할 수 있는 강력한 기능입니다.
클라우드 환경이나 고가용성이 중요한 서버에서는 매우 유용하죠.

정리하자면:

  • Ubuntu – Canonical Livepatch + Snap
  • RHEL/CentOS – kpatch 서비스 활용
  • 모든 경우 재부팅이 불필요한 건 아니지만, 가능하면 활용을 추천

적절한 모니터링과 함께 Livepatch를 적용하면
더 안정적이고 끊김 없는 서비스를 운영할 수 있습니다.