독일에 위치한 클라우드서비스회사입니다.
Infiniband/RDMA기반 Storage Replica 개발 프로젝트
- RNBD/RTRS 드라이버 개발
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/block/rnbd
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/ulp/rtrs
- RNBD 모듈은 가상 블럭 장치를 생성하여 가상 머신으로부터 IO를 전달고 RTRS 모듈에 전달함
- RTRS 모듈은 Infiniband 네트워크(RDMA)를 통해 IO를 전달 (Transport Layer)
- 2대의 스토리지 서버가 각각 하나의 블럭 장치를 Infiniband 네트워크와 RTRS 프로토콜을 통해 1대의 서비스 서버에 매핑
- 서비스 서버는 각 스토리지 서버로부터 연결된 2개의 블럭 장치를 RAID-1 장치로 묶어서 가상머신에 제공함
- https://lwn.net/Articles/820240/
- 네트워크 디바이스를 MD모듈에 연결하기위한 커널 기능 개발
- 비트맵 리로딩 지연
- 장치 생성 시간 고정
- MD장치 생성시 읽기전용모드로 만들고 쓰기 발생시 읽기/쓰기 모드로 바꿈
- MD장치의 성능 관리를 위해 latency/IO-size 통계 정보를 생성하는 sysfs 파일 생성
- MD모듈을 관리하는 mdadm 툴 개발 및 버그 패치 제출
- https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/log/?qt=grep&q=Gioh
- Qemu/Guest VM의 성능 개선
- Qemu가 사용하는 각종 CPUID FLAG 분석 및 성능 비교
- 서버 플랫폼별 Guest VM의 성능 비교 및 성능 개선을 위한 커널 옵션 최적화
- Guest VM의 성능 모니터링을 위한 CI/CD 프로세스 개발 (Grafana, Postgres DB 사용)
- 커널 버전이 바뀔때마다 자사의 커널 패치를 포팅함 (4.4 ->4.14, 4.14->1.19, 4.19->5.4, 5.4->5.10)
- MD모듈외에 SRP모듈, Infiniband 모듈의 자사 패치 관리 및 버전 업그레이드 수행
커널및 드라이버의 CI/CD 프로세스 개발
- 자동으로 자사 리눅스 커널의 기능과 성능을 테스트하는 프레임웍 개발 및 출시 프로세스 개발
- 커널에 패치 업로드할때마다 테스트 머신에서 테스트를 실행할 수 있도록 Jenkins, Gitlab과 Gitlab-runner 기능 사용
- LTP(Linux Test Project) 프레임웍에 자사 커널의 패치들을 테스트할 수 있는 테스트 케이스를 추가하여 Regression 테스트 개발 (Bash 스크립트 사용)
- 성능 모니터링을 위해 Unixbench, FIO, iperf 툴을 이용하여 커널 성능, 블럭장치 IO 성능, Infiniband 네트워크 성능을 측정
- 측정된 성능을 Postgres DB서버로 보내서 Grafana에서 그래프 생성함
- Python과 REST API 사용하여 VM을 생성하고 Guest OS의 성능을 측정하는 테스트 프로그램 개발
더보기