배경
지난 2023년 1학기, N 교수님이 Openstack을 하라고 말씀하셨다. 정확히는 Magnum, Ironic을 가지고 뭔가 재미난걸 해보라고 하셨다. 근데 가장 큰 문제는 역시나 네트워크 (Neutron)이였고, 이를 해결하기 위해서 상당히 삽질을 했다. 사실 결국 해결을 못했고, 손대기도 귀찮아서 그냥 놔두고 있다.
교수님이 그 이후 말씀하신게, 차라리 Neutron같은 무거운 서비스를 가지고 하지 말고, 그냥 하나 간단하게 VM을 만들어주는 프로그램을 만들라고 하셨다. 이름은 그냥 내가 막 붙였다. KlosedStack. 짧게 말해, Openstack의 무거운 서비스들을 벗겨내고, 우리가 필요한 기능만 만들고 있다.
사실 만들라고 하신 것은 좀 되었으나, 그간 시간이 좀 없었고 지금 주말에 조금 여유가 생길 것 같아 해보려고 한다. 이게 오픈소스가 될지 아니면 비공개가 될지는 교수님 맘이지만, 삽질 내용 중 공개 가능 선에서 공개를 하면 좋을 것 같다는 생각이 든다. 이게 비공개가 되는 케이스는, 학교에서 N 교수님 말고 다른 주인 교수님이 특허를 걸자고 말씀하시는 경우, 또는 너무 프로그램이 쓰레기 같은 경우 두가지 중 하나일 것으로 예상된다. 추후 경과는 말해주도록 하겠다.
설계
간단하게 프로그램을 짜려고 한다. 필요한 내용은 다음과 같다.
- VM 기반의 리눅스 실습 환경
- SDN으로 동작할 것
- Ceph와 같은 block storage를 사용할 것
이를 만족하기 위해 나는 다음 3개를 사용하려고 한다.
- Vagrant: 이걸로 Qemu VM을 관리할 것이다. 정확히는 KVM이 될지, 아니면 그냥 qemu가 될지는 잘 모르겠다.
- OpenvSwitch: 이걸로 SDN을 관리할 것이다. VM간의 통신, VM과 외부 인터넷과의 통신을 구현할 것이다.
- Ceph: 이걸로 block storage를 사용할 것이다. Qemu에서 사용하는 저장 장치의 경우, 분명 node에 따라 데이터가 남을 것이므로, 일부 latency + 성능 저하가 생겨도 이게 데이터 관리 측면에서는 좋을 것으로 예상 된다.
마무리
재미난 프로젝트를 진행하게 되어 신난다.
앞으로 업데이트 내용을 알려드리도록 하겠다!
'Playground > KlosedStack' 카테고리의 다른 글
[KlosedStack #3] Vagrant + OVS (Multi-Interface) (0) | 2023.07.02 |
---|---|
[KlosedStack #2] Vagrant + Libvirt (0) | 2023.06.30 |