개요
Ncloud (네이버 클라우드)에서 KVM Hypervisor 타입의 록키 리눅스(Rocky Linux) 8.8 서버를 제공하고 있는데, 서버를 생성하고 나서 Apache, PHP 등의 패키지를 설치할 때 패키지 다운로드 사이트 또는 미러 사이트에서 8.8 버전에 대한 패키지 정보를 찾을 수 없다는 메시지가 나타나면서 패키지를 설치할 수 없는 경우가 있습니다.
XEN Hypervisor 타입의 서버에서는 문제가 없는데 왜 KVM Hypervisor 타입 서버에서만 이런 문제가 생기는지
와 어떻게 하면 해결할 수 있는지를 정리해보겠습니다.
오류 상황
콘솔에서 서버를 생성한 후에 아무 것도 하지 않고 테스트로 Apache를 설치해보려고 했는데, 오류 메시지가 나타나면서 설치를 할 수 없었습니다. 또한 Extras 리포지토리 미러 사이트도 Ncloud 내부 서버가 아닌 록키 리눅스 공식 미러 사이트로 연결하려고 시도한 것을 확인할 수 있습니다.
이때, 혹시 외부와 통신이 안되어서 그런 것이 아닐까 오해할 수 있는데, 아래 오류 메시지를 보면 미러 사이트에 접속할 수 없다는 것이 아니고, 파일을 찾을 수 없다는 404 에러 메시지인 것
을 알 수 있습니다. 즉, 외부 통신은 아무 문제 없다는 것입니다.
~# dnf -y install httpd
Rocky Linux 8.8 - Extras 501 B/s | 3.3 kB 00:06
Errors during downloading metadata for repository 'extras':
- Status code: 404 for https://rocky-linux-asia-east2.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 35.241.40.125)
- Status code: 404 for https://rocky-linux-asia-south2.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.149.203.6)
- Status code: 404 for https://rocky-linux-asia-northeast3.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 35.186.196.188)
- Status code: 404 for https://rocky-linux-asia-northeast1.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.160.117.186)
- Status code: 404 for https://rocky-linux-me-west1.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.149.26.62)
- Status code: 404 for https://rocky-linux-asia-east1.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 35.186.202.231)
- Status code: 404 for https://rocky-linux-asia-southeast1.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.160.39.155)
- Status code: 404 for https://rocky-linux-asia-southeast2.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.111.41.84)
- Status code: 404 for https://rocky-linux-asia-northeast2.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.107.160.108)
- Status code: 404 for https://rocky-linux-asia-south1.production.gcp.mirrors.ctrliq.cloud/pub/rocky//8.8/extras/x86_64/os/repodata/repomd.xml (IP: 34.120.3.13)
Error: Failed to download metadata for repo 'extras': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
외부 통신이 되지 않는 경우
외부 통신이 되지 않는 경우는 아래와 같이 더 이상 진행이 되지 않고 계속 멈춰있는 상태가 되므로 여기서 다뤄보는 문제와는 관계가 없습니다.
해결 방법-1
첫번째 방법은 패키지를 설치할 때 미러 사이트 주소에서 404 에러가 발생하는 [Extras] 저장소를 비활성화하는 옵션을 적용하는 방법입니다.
~# dnf -y install httpd --disablerepo=extras
해결 방법-2
두번째 방법은 [Rocky-Extras.repo] 리포지토리 설정파일의 주소를 Ncloud 내부 서버로 변경하는 방법입니다.
# vim /etc/yum.repos.d/Rocky-Extras.repo
# Rocky-Extras.repo
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/
baseurl=http://repo.ncloud.com/rocky/$releasever/extras/$basearch/os/
- 주소 변경 후에 아파치를 설치해보면 문제 없이 잘 설치 되는 것을 확인할 수 있습니다.
KVM vs XEN
그런데 XEN 하이퍼바이저 타입의 서버에서는 아무 문제 없이 설치가 잘되는데 왜 KVM 하이퍼바이저 타입의 서버에서만 문제가 생기는 것인지 궁금해서 두 타입의 서버의 리포지토리 파일들을 비교해봤습니다.
KVM 타입
우선, 문제가 발생한 KVM 하이퍼바이저 타입의 서버에서 리포지토리 파일의 리스트를 확인해봤습니다.
리스트에는 [AppStream], [BaseOS], [Extras] 리포지토리 파일 뿐만 아니라 다수의 파일이 존재하는 것을 알 수 있습니다.
~# ls -al /etc/yum.repos.d/
Rocky-AppStream.repo
Rocky-BaseOS.repo
Rocky-Debuginfo.repo
Rocky-Devel.repo
Rocky-Extras.repo
Rocky-HighAvailability.repo
Rocky-Media.repo
Rocky-NFV.repo
Rocky-Plus.repo
Rocky-PowerTools.repo
Rocky-ResilientStorage.repo
Rocky-RT.repo
Rocky-Sources.repo
XEN 타입
다음으로, 문제가 없는 XEN 하이퍼바이저 타입의 서버에서 리포지토리 파일의 리스트를 확인해봤습니다.
그런데, 여기는 [AppStream], [BaseOS] 단 두가지의 리포지토리 파일만 존재하는 것을 알 수 있었습니다.
~# ls -al /etc/yum.repos.d/
Rocky-AppStream.repo
Rocky-BaseOS.repo
해결 방법-3
세번째 해결 방법은 위에서 확인했 듯이 [/etc/yum.repos.d/] 경로에 있는 리포지토리 파일 리스트에서 [AppStream], [BaseOS] 두가지만 남겨두고 나머지 파일들은 다른 곳에 백업하고 나서 지우면 이상 없이 패키지 설치가 가능합니다.
원인 분석
원인을 찾기 위해 처음에 문제가 생겼을 때 나타났던 오류 메시지에서 리포지토리 미러사이트 주소를 하나 선택해서 접속해봤습니다.
접속해봤더니 패키지 관련 디렉토리나 파일들은 존재하지 않고 [README.txt] 안내 파일만 존재하는 것을 알 수 있었습니다.
README.txt
해당 파일을 클릭해서 열어보니 아래와 같이 파일들이 다른 곳으로 옮겨졌으니 그쪽에서 확인해보라는 메시지를 확인할 수 있었습니다.
즉, Rocky Linux 8.8 버전은 출시된지 오래된 버전이어서 미러링 사이트들에서는 삭제되고, 공식 다운로드 사이트의 별도의 디렉토리로 옮겨진 것으로 판단이됩니다.
This content has been moved to the Rocky Linux Vault
https://dl.rockylinux.org/vault/rocky/8.8/
공식 사이트
위 파일에서 확인한 공식 사이트로 접속해보니 아래와 같이 패키지 관련 디렉토리가 존재하는 것을 알 수 있었습니다.
해결 방법-4
원인 분석에서 확인했 듯이 공식 사이트의 별도 디렉토리에 패키지 파일들이 존재하므로 [Rocky-Extras.repo] 리포지토리 파일을 아래와 같이 수정하는 방법도 가능합니다.
# vim /etc/yum.repos.d/Rocky-Extras.repo
# Rocky-Extras.repo
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/
#baseurl=http://repo.ncloud.com/rocky/$releasever/extras/$basearch/os/
baseurl=https://dl.rockylinux.org/vault/rocky/$releasever/extras/$basearch/os/
참고 URL
- Rocky Linux 서버 소개
- Rocky Linux 미러 사이트 리스트
- Ncloud XEN Hypervisor 타입의 Rocky Linux 8.6 서버 Repository 미러 사이트 오류 문제 해결 방법
문서 업데이트 내역
날짜 | 내용 |
---|---|
2023-12-28 | 문서 최초 생성 |