%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98.png)
OpenStacks HA/FT 기능 중 일부(가장 중요한 실시간 마이그레이션 및 스토리지 복제)를 시연하고 싶습니다. 이를 위해 32GB RAM이 있는 시스템과 4코어(8스레드)가 있는 Xeon e3v2가 있습니다. 지금까지 MAAS와 Juju를 시작하고 실행했지만 안전하게 배포할 수 있는 가상 노드 수(및 CPU/RAM 오버커밋 비율)에 대해 확신할 수 없습니다. 1-vcpu-machines를 사용한 오버커밋을 꽤 잘 처리할 수 있습니다.
현재 MAAS를 실행하는 VM은 vCPU 1개와 8GB RAM을 사용하고 Juju는 호스트에서 실행됩니다. 따라서 리소스를 과도하게 할당하지 않고도 7개의 vCPU와 24GB RAM을 사용할 수 있습니다. 내가 생각해낸 내용은 다음과 같습니다.
- 컨트롤러 노드 1개: vCPU 2개, 4GB RAM - RabbitMQ, mysql, keystone, 대시보드, cinder, nova-cloud-controller 및 lxc 컨테이너의 시선
- Ceph 노드 2개: vCPU 1개, 각각 4GB RAM - ceph
- 컴퓨팅 노드 2개: vCPU 2개, 각각 8GB RAM - nova-compute
- 네트워크 노드 1개: vCPU 1개, 2GB RAM - 양자 게이트웨이
- 또한 MAAS 호스트: vCPU 1개, 8GB RAM
이렇게 하면 총 38GB RAM과 10개의 vCPU가 생성되므로 약간 오버커밋합니다.
내 실제 질문은 누군가가 더 나은 아키텍처를 염두에 두고 있는지 여부입니다. 저는 OpenStack(또는 일반적인 클라우드)의 일부 기능을 보여드릴 계획입니다.
답변1
비슷한 설정이 있으며 구성을 제안하겠습니다.
- MAAS에 할당된 RAM의 양을 줄이면 약 2GB이면 충분합니다.
- 다른 ceph 노드를 추가하면 ceph를 사용할 때 복원력을 입증하는 데 도움이 되며 1개의 노드가 다운됩니다.
- CPU에서의 오버커밋은 그렇게 나쁘지는 않지만 메모리에서는 오버커밋하고 싶지 않습니다. 시스템이 스와핑을 시작하고 모든 것이 사용할 수 없는 성능을 얻게 되기 때문입니다.
- 당신이 언급하지 않은 것은 당신이 가지고 있는 디스크입니다. 이것은 나에게 큰 병목 현상입니다. btrfs(raid0)가 포함된 2 x 7200RPM 디스크가 있지만 juju가 배포되는 동안에는 충분하지 않습니다.
- 또한 juju-deployer를 사용하고 배포에 사용하는 명령줄, 특히 시간 초과 수정자와 각 "juju 배포" 호출 사이의 지연을 나타내는 '-s'를 조정할 수도 있습니다.
이게 도움이 되길 바란다.
펠리페,
답변2
아직 실행 중이면 덤프하고 LXD를 사용하는 것이 좋습니다. 문제가 없어야합니다이것을 배포MaaS 없이 로컬 LXD를 로컬 제어하여 Juju를 실행하기만 하면 됩니다.여기에 설명된 대로. 기계는 땀을 많이 흘리지 않고도 작동할 수 있어야 합니다. 이를 시연하기 위해 MaaS가 필요한 경우(정말 굉장합니다. Canonical이 근처에 오면 Openstack Roadshows를 확인해야 합니다...) 그러면 조금 더 복잡해집니다.
이 참조는3대의 컴퓨터에 설정하기, 그러나 실제로 필요한 경우 교활하게 Juju와 MaaS를 동일한 다른 시스템에 배포할 수 있습니다. 두 번째 머신이 랩 LAN에 연결된 브리지를 사용하여 LXD에서 MaaS 및 JuJu를 실행하고 PXE 트래픽이 통과할 수 있는 경우 두 머신의 컨테이너에서 모두 실행할 수 있어야 합니다. MaaS 및 Juju 시스템이 Raspberry Pi 및 NUC 장치를 조율할 수 있도록 내부 네트워크를 Thunderbolt NIC에 연결한 랩탑에서 VMWare Fusion VM과 유사한 작업을 시도하고 있습니다.
답변3
OpenStack 오케스트레이션을 위해 juju를 사용한 경험은 없지만 ceph 및 openstack 경험을 통해 데모 목적으로 문제 없이 2GB 시스템에서 ceph를 실행할 수 있으며 maas 호스트도 8GB 대신 6GB로 구성할 수 있다고 생각합니다.
juju가 동일한 VM에서 서로 다른 역할을 결합할 수 있는지 여부는 모르겠습니다. (juju가 아닌) 배포에서는 컨트롤러와 네트워크 역할을 동일한 VM(컨테이너를 사용하지 않음)에 결합합니다.
답변4
소규모 클러스터, 특히 테스트 랩 유형의 물리적 노드를 사용할 때 일반적인 지름길 중 하나는 ceph 노드를 컴퓨팅 노드와 결합하는 것입니다. 이 ceph-0.48 시대 세트를 참조하세요.데비안에 대한 지침, 또는 이것이 더 현대적입니다Proxmox VE용 실습 구성.
제공 한 숫자와 다른 답변에서 램 감소와 트리플 세프에 대한 제안을 사용하면 아마도 다음과 같습니다.
- 3vCpu + 8GB == RabbitMQ/keystone/glance/etc + cephMon1/Osd1
- 2vCpu + 10gb == novaComp2/Net2/Vol2 + cephMon2/Osd2/Httpd2/Rgw2
- 2vCpu + 10gb == novaComp3/Net3 + cephMon3/Osd3
- 1vCpu + 2GB == novaQuantum4
- 1vCpu + 3GB == MAAS_host5
저는 현재 이러한 성격의 1노드 구성을 작업 중이지만 사용 가능한 RAM이 적고 전용할 디스크가 4개뿐입니다(디스크가 여러 개인 경우 cephOsd가 더 좋습니다). 이 계획을 직접 시도하지 않았기 때문에 위의 숫자가 적절한 성능으로 작동하는지 확인할 수는 없지만 vCpu&ram과 절약하기 위해 다소 직교하는 노드를 병합하는 핵심 아이디어는 원하는 위치에 도달하는 데 충분한 견인력을 제공할 수 있습니다.
ps 하나의 물리적 노드에 있는 OpenStack에 대한 준공식 도움말 문서도 참조하세요.하나devstack.org의 전용 상자 튜토리얼에서 VM 및 보다 관련성이 높은 OpenStack