프로젝트

일반

사용자 정보

실행

새 기능 #13763

드라이버 취약 경로 정리와 관리 API 연결 보강

오 지호님이 7일 전에 추가함. 6일 전에 수정됨.

상태:
진행
우선 순위:
보통
담당자:
목표 버전:
시작 시간:
2026/09/22
완료 기한:
2026/09/22 (7일 지연)
진척도:

100%

추정 시간:
4:00 시간
발견 버전:
반영 버전:
난이도:
보통
중요도:
하
조력자:
회사:
연락처:
점수:
0.00

설명

개요

실 backend에 붙이기 전에 드러난 취약한 경로를 정리한다. 관리 API는 service 주소로 접속해 인증서를 검증하고, export 옵션은 share 단위로 조정할 수 있게 한다. 삭제와 접근 규칙 갱신이 서로를 밟는 경합, LV 변경이 HA maintenance window와 겹치는 문제도 함께 막는다. 기능을 새로 넣지는 않고 기존 경로의 빈틈을 메우는 작업이다.

작업 내용

  • 관리 API 연결: 관리 API는 service 주소에서도 응답하므로 host 옵션을 없애고 그 주소로 접속한다. GMS는 자체 발급 인증서를 쓰므로 anystor_api_ca_cert로 검증할 PEM을 지정한다. HA VIP는 인증서에 들어가지 않으니 anystor_api_cert_hostname으로 검증할 이름을 따로 준다. port는 scheme에서 유도하고 비밀번호는 backend가 복호화하는 OAEP로 암호화한다
  • export 옵션: backend 옵션은 모든 share에 적용되므로 share type의 anystor:nfs_export_options로 share별로 덧붙인다. 빈 값은 해당 옵션을 해제한다. fsid는 export마다 고유해야 한다. backend 전역으로 주면 kernel export table에서 충돌하므로 거부한다. 잘못된 옵션은 첫 share가 아니라 setup에서 실패한다. squash된 export는 mount point를 anonuid/anongid 신원에 넘긴다
  • access group 이름: hash 대신 LV 이름을 따르되 GMS schema의 20자 제한 안에 맞춘다. 운영자가 group과 share를 눈으로 맞출 수 있다. 이름만으로 소유가 식별되므로 삭제할 때 설명 문구를 비교하던 부분은 없앤다. 다른 이름은 모두 관리자에게만 보이는 instance id에서 나오니 catalog record에는 사용자에게 보이는 id를 적는다
  • share lifecycle: manila는 접근 규칙 적용 중에도 삭제를 허용하므로 갱신이 삭제가 지운 group을 되살릴 수 있다. 둘을 share별 lock으로 직렬화하고 그 안에서 catalog를 재확인한다. mount되지 않은 share는 확장을 거부한다. xfs_growfs에 mount point가 필요해서 그냥 늘리면 LV만 filesystem보다 앞서 나간다. ensure_shares는 share 하나의 실패가 나머지의 재export를 막지 않게 한다
  • HA lock: GMS는 LV 변경마다 자체 maintenance window를 여는데, 이미 열린 window가 있으면 그것을 빌려 쓴다. 다른 share의 export window를 빌리면 그 window가 닫힐 때 lvm2 중간에 cluster의 maintenance가 풀린다. 모든 LV 변경을 export window와 같은 lock 아래 둔다. window가 cluster 전역 상태라서 lock은 backend stanza가 아니라 프로세스 단위다. setup 시점에는 죽은 프로세스가 남긴 window를 정리한다
  • 통합 검사 환경: overlay compose 파일로 manila-share를 mock 대신 실 장비에 붙인다. 주소와 인증 정보, CA는 git에 올리지 않는 site 파일에서 읽는다
  • 문서: 긴 문서 두 개를 주제별로 쪼개고 주제마다 한국어 번역을 나란히 둔다
실행 #2

오 지호님이 6일 전에 변경

  • 진척도 항목을 변경했습니다 (0 => 100)
실행

내보내기 Atom PDF

클립보드 이미지 추가 (최대 크기: 50 MB)