[Docker] Openshift의 Docker-storage-setup 에러
- Infra/Docker
- 2020. 4. 26.
도커 에러 발생
Openshift를 설치하는 도중 Storage에 관련된 에러를 접하게 되었습니다.
매뉴얼에는 docker-storage-setup 스크립트를 수행하면 되는것처럼 나와있지만 실제로는 그렇지 않습니다.
https://docs.openshift.org/3.6/install_config/install/host_preparation.html
이것은 RHEL의 Atomic 이란 별도의 패키지 판에서 제공되는듯 합니다.
Docker의 전용 Storage를 만들거나 제공하려고 할때 Docker Storage를 제대로 이해하지 않고 수행하거나 이 설정파일을 만들어 수행하면 100% 에러가 떨어진다고 장담합니다.
문서대로 Docker 설치를 끝내고 다음과 같이 환경파일을 수행하고 Docker 재수행을 진행합니다.
shell > /etc/sysconfig/docker-storage-setup
DEVS=/dev/vdc
VG=docker-vg
그럼 처음엔 되는듯 하다가 다음과 같은 에러가 /var/log/message가 기록됩니다.
Apr 4 05:39:56 master01 systemd: Starting Docker Application Container Engine...
Apr 4 05:39:56 master01 dockerd: time="2018-04-04T05:39:56.644566298Z" level=info msg="libcontainerd: new containerd process, pid: 3702"
Apr 4 05:39:57 master01 dockerd: time="2018-04-04T05:39:57.651311210Z" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section."
Apr 4 05:39:57 master01 dockerd: time="2018-04-04T05:39:57.665721105Z" level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored."
Apr 4 05:39:57 master01 dockerd: time="2018-04-04T05:39:57.678426305Z" level=fatal msg="Error starting daemon: error initializing graphdriver: \"/var/lib/docker\" contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicitly choose storage driver (-s <DRIVER>)"
Apr 4 05:39:57 master01 systemd: docker.service: main process exited, code=exited, status=1/FAILURE
Apr 4 05:39:57 master01 systemd: Failed to start Docker Application Container Engine.
Apr 4 05:39:57 master01 systemd: Unit docker.service entered failed state.
Apr 4 05:39:57 master01 systemd: docker.service failed.
이건 기존 Docker Sotrage Driver나 기타 환경변수들이 자기가 알던것과 맞지 않아서 생기는 것입니다.
또한 fdisk -l을 해보면 기존에 Docker storage 환경 내용들이 잡혀 있는것을 확인해 볼 수 있습니다.
Disk /dev/loop0: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/xvdf: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/docker-202:2-67123681-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
해결방법
1. 기존 환경 파일을 삭제한다.
/etc/sysconfig/docker-storage-setup 의 docker-storage 삭제.
2. reboot. 파일시스템을 잡고 있어서 날리려 해도 안됨.
3. 기존 Docker Storage 환경을 없애고 다시 수행.
# systemctl stop docker
# rm -rf /var/lib/docker/*
# systemctl restart docker
4. Docker Storage 추가 방법을 제대로 이해하고 Storage 작업 수행.
'Infra > Docker' 카테고리의 다른 글
[Docker] Metadata Storage를 이용한 Docker용 볼륨 생성 (0) | 2020.04.26 |
---|---|
[Docker] RHEL 7.x에 Docker CE 설치 방법 (0) | 2020.04.26 |