1. Private 서비스 구축
1. 실습할 VM 3대 생성
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.provider "virtualbox" do |vb|
vb.memory =2048
end
if Vagrant.has_plugin?("vagrant-vbguest")
config.vbguest.auto_update = false
end
config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: [".git/"]
config.vm.provision "shell", inline: <<-SHELL
export DEBIAN_FRONTEND=noninteractive
sudo apt -y update
sudo apt install -y ca-certificates curl gnupg libnss-mdns
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt -y update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker vagrant
SHELL
config.vm.define "ceph", primary: true do |ceph|
ceph.vm.hostname = "ceph.local"
ceph.vm.network "private_network", ip: "192.168.56.101"
end
config.vm.define "registry", primary: true do |registry|
registry.vm.hostname = "registry.local"
registry.vm.network "private_network", ip: "192.168.56.102"
end
config.vm.define "node", primary: true do |node|
node.vm.hostname = "node.local"
node.vm.network "private_network", ip: "192.168.56.103"
end
end
CEPH 는 추가적인 스토리지가 필요하기 때문에 VM 프로비전 후 VirtualBox에서 스토리지 추가해주기
1. 스토리지(CEPH)
- Object 스토리지
- Block 스토리지
- NFS 스토리지
1. CEPH node 접속

2. MON 실행
docker run -d --net=host --name=ceph-mon -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -e MON_IP=192.168.95.167 -e CEPH_PUBLIC_NETWORK=192.168.95.0/24 ceph/daemon:latest-mimic mon
위 방법으로 되지 않음(arm64 Ubuntu)
아래의 방법으로 해보도록
ceph 구성하기
amd64 환경에서 재실습

3. 관리 데몬 실행(mgr)
docker run -d --net=host --name ceph-mgr -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ ceph/daemon:latest-mimic mgr

4. OSD 배포
1. ceph node에 추가한 이미지 탐색
lsblk

5. OSD 실행
docker run -d --net=host --name ceph-osd --privileged=true -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph -v /dev/:/dev/ -e OSD_DEVICE=/dev/sdc -e OSD_TYPE=disk ceph/daemon:latest-mimic osd
2. 레지스트리
1. Nexus