웹사이트 검색

Ubuntu 12.04 LTS를 Ubuntu 14.04 LTS로 업그레이드하는 방법


소개

Ubuntu에는 표준 및 장기 지원(또는 "LTS\)의 두 가지 릴리스가 있습니다. 표준 업데이트는 6개월마다 릴리스되며 최소 9개월 동안 Ubuntu에서 보안 업데이트를 받는 반면, LTS 업데이트는 2년마다 릴리스되며 지원됩니다. 적어도 5년 동안.

현재 Ubuntu 12.04를 사용 중인 경우 최소 2017년 10월까지 보안 업데이트가 제공됩니다. 해당 지원 시간을 연장하고 새로운 기능 및 업데이트에 액세스하려면 서버를 최신 LTS 릴리스로 업그레이드할 수 있습니다. 이 가이드에서는 기존 구성을 유지하면서 Ubuntu 12.04 서버를 14.04로 안전하게 업그레이드하는 방법을 살펴보겠습니다.

경고: 운영 체제의 주요 릴리스 간의 거의 모든 업그레이드와 마찬가지로 이 프로세스에는 고유한 오류, 데이터 손실 또는 손상된 소프트웨어 구성의 위험이 있습니다. 포괄적인 백업과 광범위한 테스트를 강력히 권장합니다.

이러한 문제를 방지하려면 가능하면 전체 업그레이드가 아닌 새로운 Ubuntu 14.04 서버로 마이그레이션하는 것이 좋습니다. 업그레이드할 때 소프트웨어 구성의 차이점을 검토해야 할 수도 있지만 핵심 시스템의 안정성이 더 높을 것입니다. 새 Linux 서버로 마이그레이션하는 방법에 대한 시리즈를 따라 서버 간 마이그레이션 방법을 배울 수 있습니다.

1단계 - 기존 데이터 백업

12.04 서버를 사용하여 중요한 작업이나 데이터를 처리할 가능성이 높으므로 서버 구성 및 파일의 현재 상태를 백업하는 것이 매우 중요합니다. 우리가 검토할 프로세스는 릴리스 업그레이드를 수행하는 데 권장되는 방법이지만 릴리스 업그레이드로 인해 소프트웨어나 구성에 문제가 발생하지 않는다고 보장할 수 있는 방법은 없습니다. 미리 데이터를 백업해 두면 업그레이드로 인해 문제가 발생할 경우 훨씬 쉽게 복구할 수 있습니다.

이 단계에서는 여러 백업 방법을 다룹니다. DigitalOcean을 사용하는 경우 파일을 로컬 컴퓨터에 동기화하는 것 외에도 제어판을 통해 스냅샷을 만드는 것이 좋습니다. 이렇게 하면 복원이 필요한 시나리오의 특성에 따라 개별 파일을 복원하거나 전체 스냅샷을 복원할 수 있습니다.

로컬 컴퓨터에 파일 동기화

Ubuntu 서버에서 파일을 백업하는 몇 가지 효과적인 방법이 있습니다. 이 예에서는 rsync를 사용하여 서버의 파일을 로컬 컴퓨터의 백업 폴더에 복사합니다. 파일 시스템의 모든 폴더를 백업할 수는 없습니다. 그 중 일부는 실행 중인 프로세스를 위한 임시 저장소이기 때문입니다. 다행히 이러한 폴더를 백업에서 제외할 수 있습니다.

다음 명령을 사용하여 빨간색으로 표시된 서버 자격 증명을 변경하도록 주의하면서 서버의 파일 시스템을 복사할 수 있습니다. 서버에서 SSH 키 기반 인증을 사용하는 경우 루트 사용자는 기본적으로 암호를 설정하지 않으므로 rsync가 개인 키 파일을 가리키도록 해야 합니다. 이 파일은 일반적으로 /home/username/.ssh/id_rsa에 있습니다. 서버 파일을 로컬로 다운로드하고 있으므로 백업 중인 서버가 아니라 로컬 컴퓨터에서 명령을 실행해야 합니다.

sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} -e 'ssh -i /path/to/private_key' root@SERVER_IP_ADDRESS:/* ~/backup/

aAX 플래그는 권한, 소유권 및 수정 시간과 같은 중요한 파일 속성을 보존하도록 rsync에 지시합니다. Docker 또는 다른 가상화 도구를 사용하는 경우 rsync가 가상 저장소와 같은 희소 파일을 적절하게 처리하도록 S 플래그를 추가해야 합니다.

참고: rsync는 Linux 및 OS X와 같은 Unix 기반 운영 체제에서만 사용할 수 있습니다. 로컬 컴퓨터에서 Windows를 실행 중인 경우 Filezilla와 같은 SFTP 클라이언트를 사용하여 서버의 파일을 복사할 수 있습니다. Filezilla 사용 방법 VPS에서 파일을 안전하게 전송하고 관리하려면

나중에 서버 파일의 일부를 복원해야 하는 경우 sudo rsync -aAXv -e ssh -i rsync를 다시 사용할 수 있습니다. >/path/to/private_key ~/backup/ root@SERVER_IP_ADDRESS:/*

DigitalOcean 물방울 스냅샷 만들기

DigitalOcean을 사용하는 경우 문제가 발생할 경우 쉽게 복원할 수 있는 Droplet의 스냅샷을 생성할 수 있습니다. 2016년 10월부터 스냅샷 비용은 파일 시스템 내에서 사용된 공간의 양을 기준으로 GB당 매월 $0.05입니다. 이 옵션을 사용할 수 있는 경우 중복성을 위해 한 가지 방법을 선택하는 것보다 두 가지 백업 방법을 모두 사용하는 것이 좋습니다. 업그레이드가 문제 없이 완료되었음을 확인한 후 스냅샷을 삭제할 수 있습니다.

먼저 스냅샷을 위해 현재 상태가 보존되도록 서버의 전원을 끕니다. 실행 중인 시스템의 스냅샷을 생성할 수 있지만 디스크에서 데이터의 일관성을 유지하려면 전원을 끄는 것이 가장 좋습니다.

sudo poweroff

다음으로 DigitalOcean 제어판에 로그인하고 업그레이드할 Droplet을 선택합니다. 스냅샷 패널로 이동하여 새 스냅샷의 이름을 입력하고 스냅샷 찍기를 선택합니다.

스냅샷 프로세스가 완료되면 서버가 자동으로 재부팅되므로 SSH를 통해 다시 연결하여 업그레이드를 계속할 수 있습니다.

나중에 이 스냅샷으로 서버를 복원해야 하는 경우 Droplet 제어판의 Destroy 섹션에서 해당 이미지에서 다시 빌드할 수 있습니다.

2단계 - 업그레이드 준비

릴리스 업그레이드를 시작하기 전에 이미 설치된 소프트웨어가 최신 버전인지 확인해야 합니다. 이제 설치된 소프트웨어를 업데이트하면 많은 패키지에 대한 릴리스 업그레이드가 줄어들어 오류 가능성이 줄어듭니다.

apt를 사용하여 로컬 패키지 인덱스를 업데이트한 다음 현재 설치된 소프트웨어를 업그레이드합니다.

sudo apt-get update
sudo apt-get upgrade

update-manager-core를 사용하여 릴리스 업그레이드를 관리할 것입니다. 이 패키지는 대부분의 Ubuntu 12.04 설치에서 기본적으로 설치되지만 apt-cache를 사용하여 서버에 설치되었는지 여부를 확인할 수 있습니다.

apt-cache policy update-manager-core

명령이 설치된 버전 번호를 반환하지 않는 경우(즉, Installed: (none)가 표시되는 경우) apt를 사용하여 Ubuntu의 소프트웨어 리포지토리에서 업데이트 관리자를 다운로드합니다.

sudo apt-get install update-manager-core

업데이트 관리자가 설치되었음을 확인하면 업그레이드 프로세스를 시작할 준비가 된 것입니다.

3단계 - 14.04로 업그레이드

이제 루트 권한으로 do-release-upgrade 명령을 실행할 수 있습니다. 이것은 Ubuntu의 리포지토리에서 최신 릴리스 소프트웨어를 가져오고 서버에 다양한 업그레이드를 적용하는 자동화된 스크립트입니다. 이 업그레이드는 몇 분 정도 걸릴 수 있으며 때때로 메시지가 표시되므로 업그레이드가 진행되는 동안 SSH 세션을 주시하십시오.

sudo do-release-upgrade

업데이트 관리자가 다음 LTS 릴리스로 이동하는 것과 관련된 대부분의 세부 사항을 처리하지만 프롬프트가 표시되면 여전히 몇 가지 결정을 내려야 합니다. 이러한 프롬프트의 대부분은 기존 구성 파일을 덮어쓸 것인지 묻습니다. 기본 조치는 이미 존재하는 구성을 유지하는 것이며 일반적으로 안정성을 보장하는 가장 좋은 옵션입니다. 그러나 옵션을 선택하기 전에 각 프롬프트를 주의 깊게 읽어야 하며 적절한 선택을 하기 위해 해당 패키지를 찾는 것을 두려워하지 마십시오.

업그레이드 프로세스가 거의 끝나갈 무렵 서버를 재부팅하라는 메시지가 표시됩니다. 재부팅을 시작하려면 "y\로 확인하십시오.

SSH 세션의 연결이 끊어지므로 업그레이드가 예상대로 진행되었는지 확인하려면 다시 연결해야 합니다. 다시 연결되면 lsb_release를 사용하여 새 Ubuntu 버전 번호를 확인합니다.

lsb_release -a

다음과 유사한 출력이 표시됩니다.

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.1 LTS
Release:	14.04
Codename:	trusty

Release:에 14.04가 표시되면 Ubuntu LTS 서버를 성공적으로 업그레이드한 것입니다!

4단계 — 커널 업그레이드

업데이트된 릴리스와 함께 사용할 새 커널을 다운로드했더라도 서버를 호스팅하는 데 사용되는 소프트웨어에서 사용할 수 있도록 커널이 활성화되지 않았을 수 있습니다. DigitalOcean을 사용하는 경우 호스팅 소프트웨어(KVM이라고 함)는 서버 이미지 외부에서 커널을 유지하므로 별도로 업데이트해야 합니다.

uname으로 서버가 현재 사용 중인 커널 버전을 확인할 수 있습니다.

uname -ri

출력 결과는 다음과 같습니다.

3.2.0-24-virtual i686

커널 버전이 3.13보다 낮으면 서버가 아직 Ubuntu 14.04의 커널을 사용하지 않는다는 의미입니다. 이전 커널이 소프트웨어에 문제를 일으킬 가능성은 거의 없지만 최신 커널을 사용하면 향상된 성능이나 유용한 새 기능을 볼 수 있습니다.

업그레이드 프로세스 중에 서버가 Ubuntu 14.04에서 사용하기 위해 로드할 새 커널을 다운로드했습니다. /lib/modules 디렉토리의 내용을 확인하여 다운로드된 커널 버전을 확인할 수 있습니다.

ls /lib/modules

다음과 같은 목록이 표시됩니다.

3.13.0-39-generic  3.2.0-24-virtual

새로 설치된 커널을 사용하려면 드롭릿의 제어판에서 커널 선택을 업데이트한 다음 전원을 끄고 드롭릿을 부팅해야 합니다.

먼저 DigitalOcean 제어판에 로그인하고 업그레이드할 서버를 선택합니다. 설정 패널에서 커널 탭을 선택합니다.

여기에 사용 가능한 커널의 드롭다운 목록이 표시됩니다. 다운로드한 커널의 배포, 릴리스 및 버전 번호와 일치하는 커널을 선택합니다(위의 예에서 3.13.0-39-generic).

커널이 선택되면 변경을 클릭하여 해당 커널을 서버에 로드합니다. 새 커널을 사용하려면 서버 전원을 꺼야 합니다. 제어판에서 이 작업을 수행할 수 있지만 이는 컴퓨터에서 전원 플러그를 뽑는 것과 유사하므로 대신 터미널을 통해 전원을 끄는 것이 좋습니다.

sudo poweroff

서버가 완전히 종료되면 제어판에서 다시 부팅할 수 있습니다. 전원 패널에서 부팅을 선택합니다.

이제 SSH를 통해 서버에 다시 연결하고 uname을 사용하여 새 커널이 사용 중인지 확인할 수 있습니다.

uname -ri

다음과 유사한 출력이 표시됩니다.

3.13.0-39-generic i686

커널 버전이 제어판에 로드한 커널과 일치하면 커널을 성공적으로 업데이트한 것입니다.

결론

이제 Ubuntu 서버를 최신 LTS 릴리스로 업그레이드하여 최소 2019년까지 최신 소프트웨어 업데이트 및 보안 업데이트에 액세스할 수 있습니다. 업그레이드 후 프로그램과의 호환성 문제가 발생하면 해당 프로그램의 설명서를 확인하십시오. 구성을 변경해야 하는 중요한 변경 사항이 있는 경우.