一键导入
devstack-setup
DevStack 환경을 Lima VM으로 설치/관리하는 가이드. "devstack 설치", "devstack setup", "openstack 환경 구축", "멀티노드 설치" 요청 시 트리거.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
DevStack 환경을 Lima VM으로 설치/관리하는 가이드. "devstack 설치", "devstack setup", "openstack 환경 구축", "멀티노드 설치" 요청 시 트리거.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | devstack-setup |
| description | DevStack 환경을 Lima VM으로 설치/관리하는 가이드. "devstack 설치", "devstack setup", "openstack 환경 구축", "멀티노드 설치" 요청 시 트리거. |
macOS Apple Silicon에서 Lima VM 기반 OpenStack DevStack 환경을 설치한다. 싱글(all-in-one)과 멀티노드(controller + compute x2) 두 가지 모드를 지원한다.
사용자에게 모드를 물어본다:
nexttui/devstack/
├── ds — 운영 CLI
├── single/devstack.yaml — 싱글 모드 Lima 설정
└── multi/
├── devstack-ctrl.yaml — controller
├── devstack-cp1.yaml — compute 1
└── devstack-cp2.yaml — compute 2
또는 독립 repo: https://github.com/bluejayA/devstack-lima
# 확인
brew --version
limactl --version
file /opt/socket_vmnet/bin/socket_vmnet # symlink이면 안됨, 실제 바이너리여야 함
없으면 설치:
brew install lima socket_vmnet
sudo mkdir -p /opt/socket_vmnet/bin
sudo cp /opt/homebrew/opt/socket_vmnet/bin/socket_vmnet /opt/socket_vmnet/bin/socket_vmnet
sudo brew services start socket_vmnet
limactl sudoers | sudo tee /etc/sudoers.d/lima
주의:
ln -s는 Lima가 거부한다. 반드시cp로 복사. 주의:sudo명령은 사용자에게!prefix로 실행하도록 안내.
./devstack/ds up multi
./devstack/ds ips
# ctrl=192.168.105.2 cp1=192.168.105.3 cp2=192.168.105.4 (예시)
./devstack/ds configure-compute devstack-cp1 <ctrl_ip>
./devstack/ds configure-compute devstack-cp2 <ctrl_ip>
반드시 controller 먼저, 완료 후 compute 노드.
./devstack/ds stack devstack-ctrl # 30-45분 (백그라운드 실행 권장)
./devstack/ds stack devstack-cp1 # 25-30분
./devstack/ds stack devstack-cp2 # 25-30분
compute 노드는 controller의 MySQL/RabbitMQ에 접속하므로 controller가 완전히 완료된 후 실행. cp1, cp2는 병렬 실행 가능.
./devstack/ds post-setup multi
이 명령이 수행하는 작업:
nova-cpu.conf에서 cpu_mode=host-passthrough → cpu_mode=custom + cpu_model=cortex-a72libvirtd-tcp.socket 활성화 (포트 16509)nova-compute 재시작nova-manage cell_v2 discover_hosts (cell mapping)./devstack/ds validate multi
All checks passed 가 나오면 완료.
./devstack/ds up single
./devstack/ds stack devstack # 30-45분
./devstack/ds validate single
post-setup 불필요.
증상: Geneve max_header_size set too low for OVN
원인: 최신 DevStack이 기본 OVN 사용. local.conf에 OVS가 명시되어 있어야 함.
해결: Lima YAML의 local.conf에 이미 포함되어 있음:
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,l2population
이 설정이 없는 local.conf를 사용하면 발생.
--listen unsupported증상: libvirtd.service: Main process exited, code=exited, status=6/NOTCONFIGURED
원인: Ubuntu 24.04 libvirt 10.0은 --listen 대신 socket activation 사용.
해결: ds post-setup multi가 libvirtd-tcp.socket을 활성화.
증상: CPU mode 'host-passthrough' for aarch64 qemu domain on aarch64 host is not supported
원인: ARM QEMU에서 host-passthrough 불가. DevStack 기본값이 이것.
주의: 설정 파일이 /etc/nova/nova-cpu.conf이다. /etc/nova/nova.conf가 아님!
해결: ds post-setup multi가 cpu_mode=custom, cpu_model=cortex-a72로 수정.
증상: openstack hypervisor list가 비어있지만 openstack compute service list에는 nova-compute가 up.
원인: compute 호스트가 Nova cell에 매핑되지 않음.
해결: ds post-setup multi가 nova-manage cell_v2 discover_hosts 실행.
증상: hypervisor list 비어있고, compute service Status가 disabled.
원인: libvirtd 중단 시 nova-compute가 자동 disabled 전환.
해결:
# controller에서
openstack compute service set --enable <host> nova-compute
VM을 ds down/ds up한 후:
./ds ssh <vm>
sudo -iu stack
cd /opt/stack/devstack
./rejoin-stack.sh
멀티노드의 경우 controller 먼저, 이후 compute 노드.
ds validate multi 결과:
하나라도 FAIL이면 위 "알려진 이슈" 섹션에서 매칭되는 증상을 찾아 해결.
multi-node 설치 후:
clouds:
devstack-multi:
auth:
auth_url: http://<ctrl_ip>:5000/v3
project_name: admin
username: admin
password: secret
user_domain_name: Default
project_domain_name: Default
region_name: RegionOne
identity_api_version: 3
<ctrl_ip>는 ds ips로 확인.
| VM | CPU | RAM | Disk |
|---|---|---|---|
| devstack-ctrl | 2 | 8GB | 40GB |
| devstack-cp1 | 2 | 4GB | 30GB |
| devstack-cp2 | 2 | 4GB | 30GB |
| 합계 | 6 | 16GB | 100GB |
호스트 최소 요구: 20GB+ RAM, 6+ CPU, 110GB+ 디스크 여유.