배경일을 하다보니, 간혹 subnet이 하나라 아쉬운 순간이 이만 저만이 아니다. 가령 연구실에서 쓰는 ESXi 테스트베드 대역 중 하나는 10.0.20.0/24 라는 대역인데, 여기에 사람들이 몰리다 보니, 나 혼자만의 subnet이 필요하다... 하지만, 연구실에서 교수님께 라우터를 사달라하면 교수님이 너무나 좋아하시고, 일을 더 시킬게 분명하기에, 조용히... 그냥 서버 하나를 가지고 NAT를 만들어보려고 한다. 그리고, 내가 여간 게으른 성격이 아니기에, 해당 서버에서 DHCP 서버도 같이 동작시켜서, 자동으로 IP 할당도 해보려 한다. (todo) 목표- Subnet: 10.0.30.0/24- Gateway: 10.0.30.1+ DHCP 서버까지 (todo)OVS 브릿지 설정실제 서버(VM)의..
배경 언제나 그렇듯, 삽질은 예상치 못한 곳에서 시작된다. 지금 다루고 있는 프로젝트는 K8s에서 5G를 프로비저닝 해주는 서비스이다. 근데 이걸 사용하려면 웹 인터페이스가 필요한데, 문제는 해당 서비스에는 SSL이 없다. 그래서, Nginx의 reverse proxy 를 통해서 외부로 HTTPS 노출을 시키고, 머신 내부에서는 kubectl port-forward로 하려고 한다. 하지만.... certbot을 사용해서 SSL을 만드려 하니 에러가 나왔다. 역시나 그렇듯, 언제나 SSL은 발목을 잡는다.. 문제점 그냥 쉬운 커맨드였다. $ sudo certbot certonly Traceback (most recent call last): File "/usr/bin/certbot", line 11, in..
배경 + 잠수 탄 이유? 사실 N 교수님이 월요일까지 논문을 써오라고 했는데, 글 쓰기 싫어서 블로그에 주저리 주저리 써보려고 한다. 뭔가 마지막 게시글은 인공지능 게시글이였지만, 그 전 게시글은 2023년 7월 27일에 올린 게시글이더라. 그 이후로 게시글을 올리지 못했고, 그러한 내용과 아무도 알고싶어하지 않는 2023년 하반기 요약에 대해서 말해주려고 한다. 2학기는 1학기에 비해 매우 바빴다. 정확히는 1학기 + 1학기 방학 합친것 정도로 바빴다. 연구실 일이 매우 많았고, 학기 중에 해외 발표 때문에 두번 정도 비행기를 탔다. (그중 한 과목은 유고결석 처리가 안되어서 무단 결석으로 나오긴 했으나, 아무튼...) 그리고 N 교수님은 과제를 엄청 많이 따셔서 (대략 지금까지 6개 + 올해 2개 더..
배경 내가 클라우드를 좋아 하고, 인공지능을 하지 않고 별로 좋아하지 않는 이유는 1) 수학이 싫어서 2) GPU 설정하기 싫어서. 두 가지로 나뉜다. 하지만, N 교수님이 당장 인공지능을 LLM을 돌려보라는 말을 하셔서 해야한다. 정확히는 스토리가 길지만, 언제나 그렇듯 원래 다른 사람의 일이였으나 어쩔 수 없이 울며 겨지먹기로 인공지능을 해야한다. 제약사항: PCI Passthrough 언제나 그렇듯, 우리의 환경은 클라우드 환경이다. 누군가는 아니 그냥 설치하고 cuda 툴킷 설치하면 되는거 아니냐? 그거 못 설치하면서 리눅스 한다고 하냐? 이래서 인프라 하는 놈들은 안된다. 이라는 말을 할지 모른다. 하지만, 우리에게는 언제나 그렇듯, 제약사항이 존재한다 우리의 머신은 RTX 4090 두대가 들어..
배경 LSM-BPF를 하면서, LSM hook이 걸렸지만, 실제로 실행이 되지 않는 상황이 발생했다. 그래서 이를 해결하기 위해서, 그리고 이게 정말로 동작하는지를 확인하기 위해서 bpf_trace_printk를 사용하게 되었다. 이런 과정에서 알게된 삽질 내용이다. 따라서, 간만에 본업 중 하나인 eBPF에 관한 글을 적게 되었다. 시작하기 전에... 알 사람들은 알겠지만, 나는 cilium의 eBPF를 사용한다. 만약 bcc 또는 그냥 bpftool로 로딩하는 eBPF를 사용하는 경우에는 이게 잘 동작하지 않을 수 있다. 사실 물론 다 같이 동작하긴 하지만, 살짝의 차이점이 있을 수 있다는 것을 인지했으면 좋겠다. 우선 배경지식으로 알고가면 좋을 내용에 대해서 먼저 알아보도록 하려고 한다. 우선 흔히..
배경 관리하던 학교 Kubernetes(이하 K8s) 클러스터에 접속해서 관리를 하려고 했더니 다음처럼 나왔다. $ kubectl get pods Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-07-14T01:22:53Z is after 2023-07-10T11:45:22Z 그래서 이를 해결하고자 살짝의 삽질을 했다 (한 10분 정도니까 삽질이라고 하기도 좀 그렇다...) 인증서 확인 먼저 정말로 X509 인증서가 만료되었는지 확인하자. sudo kubeadm certs check-expiration [check-expiration] Reading configuratio..
시리즈 - [KlosedStack #1] Intro: https://blog.isu.kim/14 - [KlosedStack #2] Vagrant + Libvirt: https://blog.isu.kim/15 - [KlosedStack #3] Vagrant + OVS https://blog.isu.kim/16 배경 지난주에 여러 인터페이스를 사용하는 서버 셋업으로 OVS + Vagrant를 구성했었다. 이후 목요일에 N 교수님께 해당 내용을 랩미팅 때 발표했었다. 그리고 돌아온 피드백. 어 좋은데, 단일 인터페이스로 안될까? 그리고 VM에서 eth0 그리고 eth1 쓰는거 말고 인터페이스 하나로 하게 하자, MASQUERADE 하면 될꺼야! 라는 피드백을 받았다. 사실 MASQUERADE 생각을 했었으나,..
배경 나에게는 두분의 주인님이 계신다. 각 연구실에서 내가 하는 일이 살짝 다르다. Y 교수님: Ceph 관련 일을 해야한다 N 교수님: 분산 추적 관련 일을 해야한다 이번 랩미팅 때, 재미있는걸 해볼 수 있을 것 같다. 바로, "Ceph의 내부 상황을 Jager로 모니터링하기"다. 이러면 Ceph에 대해 조금 더 알 수 있고, Jager에 대해서도 알 수 있게 된다. 아주 좋다. "Ceph Jager" 키워드를 검색하니, Ceph가 기본으로 Jager를 지원한다고 나와있다. - https://docs.ceph.com/en/quincy/dev/developer_guide/jaegertracing/ JAEGER- DISTRIBUTED TRACING — Ceph Documentation © Copyright..
배경 N 교수님 연구실 말고, Y 교수님 연구실에서는 Ceph를 가지고 뭔가를 한다. 아직 Ceph에 대해 많이 알지는 못한다. 하지만 그냥 이런게 있다 정도는 안다. 이번에 KlosedStack을 구성하며, 새로 도입해야하는 요소는 바로 Ceph이다. https://blog.isu.kim/16 [KlosedStack #3] Vagrant + OVS 시리즈 - [KlosedStack #1] Intro: https://blog.isu.kim/14 - [KlosedStack #2] Vagrant + Libvirt: https://blog.isu.kim/15 배경 지난 시간에는, KlosedStack에서 사용할 VM을 Vagrant로 Libvirt를 사용해 생성했다. 이제는 각 VM끼리 연 blog.isu.k..
시리즈 - [KlosedStack #1] Intro: https://blog.isu.kim/14 - [KlosedStack #2] Vagrant + Libvirt: https://blog.isu.kim/15 배경 지난 시간에는, KlosedStack에서 사용할 VM을 Vagrant로 Libvirt를 사용해 생성했다. 이제는 각 VM끼리 연결을 해줘야한다. 연결에는 OpenvSwitch를 사용할 예정이다. 토폴로지 살짝 복잡해보이지만 어렵지 않다. 간단하게 생각을 하면 다음의 구조와 같다. 각 VM의 경우 내부 eth1번에 호스트 머신의 macvtap 인터페이스를 붙인다. 또한 VM 내부의 eth1에 IP를 10.0.35.0/24 대역으로 준다. 호스트 A의 VM은 10.0.35.211, 호스트 B의 VM..