diff --git a/docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md b/docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md index 0d1aa165..e9565924 100644 --- a/docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md +++ b/docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md @@ -1,168 +1,663 @@ - # 공유 파일 시스템 ## 개요 -NFS를 통해 마운트할 수 있는 관리 공유 파일 시스템을 설정할 수 있습니다. -사용자는 서비스 제공, 디스크 제공, 파일 시스템 형식 및 네트워크를 선택할 수 있습니다. +공유 파일 시스템은 전용 Storage Service System VM과 데이터 볼륨을 사용하여 파일 및 블록 스토리지 서비스를 제공하는 기능입니다. +하나의 공유 파일 시스템에서 NFS, SMB, iSCSI 및 NVMe-oF 가운데 하나 이상의 서비스를 선택하여 함께 운영할 수 있습니다. + +공유 파일 시스템을 생성하면 선택한 가상머신용 컴퓨트 오퍼링으로 System VM이 배포되고 새 데이터 볼륨 또는 기존 데이터 볼륨이 백킹 볼륨으로 연결됩니다. +NFS와 SMB 파일 서비스의 백킹 볼륨에는 XFS 또는 EXT4 파일 시스템을 사용할 수 있습니다. +iSCSI와 NVMe-oF 블록 서비스는 백킹 볼륨을 LUN 또는 네임스페이스로 제공합니다. + +NFS 내보내기 이름, SMB 공유 이름, iSCSI 대상 IQN 및 NVMe-oF 서브시스템 NQN은 클라이언트에서 사용하는 식별자입니다. +내부 백킹 경로와 클라이언트에서 사용하는 이름을 구분하여 설정해야 합니다. + +!!! info + 최신 UI의 메뉴와 생성 화면에서는 **공유 파일 시스템**이라는 명칭을 사용합니다. + 이 문서에서 Storage Service는 공유 파일 시스템이 제공하는 다중 프로토콜 서비스 기능을 의미합니다. + +## 사전 준비 사항 +1. 공유 파일 시스템을 생성하기 전에 사용할 네트워크, 디스크 오퍼링 및 가상머신용 컴퓨트 오퍼링을 준비합니다. -공유 파일 시스템은 지정된 서비스 제공이 있는 인스턴스에 배포됩니다. -제공된 디스크 제공을 사용하여 데이터 볼륨이 생성되고 인스턴스에 연결됩니다. -사용자는 사용할 파일 시스템(XFS, EXT4)을 지정할 수 있습니다. + 👉   🔗[네트워크 생성 가이드](../mold-admin-guide-network-guest-networks/#_5) -파일 시스템은 데이터 볼륨에 생성되고 NFS를 통해 내보내집니다. -게스트 네트워크의 모든 인스턴스는 공유 파일 시스템을 마운트하고 읽고 쓸 수 있습니다. + 👉   🔗[디스크 오퍼링 생성 가이드](../mold-admin-guide-offerings-disk-offerings/#_4) + + 👉   🔗[가상머신용 컴퓨트 오퍼링 생성 가이드](../mold-admin-guide-offerings-compute-offerings/#_5) + +2. 기존 데이터 볼륨을 사용할 경우 볼륨이 `Ready` 상태이고 다른 가상머신에 연결되어 있지 않은지 확인합니다. +3. 사용할 프로토콜에 맞는 클라이언트 도구와 네트워크 연결을 준비합니다. + - NFS 클라이언트 + - SMB 클라이언트 또는 `smbclient` + - iSCSI 초기자(Initiator) + - NVMe CLI +4. SMB Active Directory, iSCSI CHAP와 같은 인증 기능을 사용할 경우 필요한 인증정보를 준비합니다. + +!!! danger + 비밀번호와 CHAP Secret은 생성 또는 변경 요청에만 사용하는 민감정보입니다. + 인증정보를 문서, 명령 기록 또는 화면 이미지에 저장하지 마십시오. ## 공유 파일 시스템 목록 조회 -1. 공유 파일 시스템 목록을 확인하는 화면입니다. 생성된 공유 파일 시스템 목록을 확인하거나 공유 파일 시스템 생성 버튼을 클릭하여 공유 파일 시스템을 생성하실 수 있습니다. - ![공유 파일 시스템 목록 조회](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-dashboard.png){ .imgCenter .imgBorder } - !!! info - 매트릭 버튼을 활성화할 때 해당 디스크에 대한 상세 정보를 공유 파일 시스템 목록에서 확인할 수 있습니다. +1. **스토리지 > 공유 파일 시스템**을 선택합니다. +2. 생성된 공유 파일 시스템의 이름, 상태, 크기, 스토리지, 계정 및 Zone을 확인합니다. +3. 공유 파일 시스템을 생성하려면 오른쪽 상단의 **공유 파일시스템 생성** 버튼을 클릭합니다. +![공유 파일 시스템 목록](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-list-01.png){ .imgCenter .imgBorder } - 프로젝트 버튼을 활성화할 때 해당 프로젝트에 대한 정보를 공유 파일 시스템 목록에서 확인할 수 있습니다. +!!! info + 메트릭 표시를 활성화하면 목록에서 읽기, 쓰기, 사용률 및 물리 크기와 같은 정보를 추가로 확인할 수 있습니다. + + 프로젝트 표시를 활성화하면 공유 파일 시스템이 속한 프로젝트 정보를 확인할 수 있습니다. ## 공유 파일 시스템 생성 -1. 스토리지의 공유 파일 시스템에 상단의 공유 파일 시스템 생성 버튼을 클릭합니다. - ![공유 파일 시스템 생성 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 생성 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 생성](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-02.png){ .imgCenter .imgBorder } - - **소유자 유형:** 소유자 유형을 선택합니다. - - **도메인:** 도메인을 선택합니다. - - **계정:** 계정을 선택합니다. - - **이름:** 이름을 입력합니다. - - **설명:** 설명을 입력합니다. - - **Zone:** Zone을 선택합니다. - - **파일 시스템:** 파일 시스템을 선택합니다. - - **네트워크:** 네트워크를 선택합니다. - - **디스크 오퍼링:** 디스크 오퍼링을 선택합니다. - - **크기:** 크기를 입력합니다. - - **가상머신용 컴퓨트 오퍼링:** 가상머신용 컴퓨트 오퍼링을 선택합니다. - - !!! info - 네트워크, 디스크 오퍼링, 가상머신용 컴퓨트 오퍼링 경우, 미리 사전에 생성되어 있어야 합니다. - - 👉   🔗[네트워크 생성 가이드](../mold-admin-guide-network-guest-networks/#_5) - - 👉   🔗[디스크 오퍼링 생성 가이드](../mold-admin-guide-offerings-disk-offerings/#_4) - - 👉   🔗[가상머신용 컴퓨트 오퍼링 생성 가이드](../mold-admin-guide-offerings-compute-offerings/#_5) -## 공유 파일 시스템 업데이트 -1. 공유 파일 시스템 상세 오른쪽 상단의 공유 파일 시스템 업데이트 버튼을 클릭합니다. - ![공유 파일 시스템 업데이트 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 업데이트 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 업데이트](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-02.png){ .imgCenter .imgBorder } - - **이름:** 이름을 입력합니다. - - **설명:** 설명을 입력합니다. +1. **스토리지 > 공유 파일 시스템**에서 **공유 파일시스템 생성** 버튼을 클릭합니다. +2. 기본 정보, 볼륨 및 백킹 용량, 서비스 선택과 프로토콜별 설정을 입력합니다. +3. 왼쪽의 입력 내용 검토 영역에서 선택한 항목을 확인하고 **확인** 버튼을 클릭합니다. +4. 생성 작업이 완료되면 목록에서 공유 파일 시스템의 상태를 확인합니다. -## 공유 파일 시스템 파기 -1. 공유 파일 시스템 상세 오른쪽 상단의 공유 파일 시스템 파기 버튼을 클릭합니다. - ![공유 파일 시스템 파기](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 파기 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 파기](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-02.png){ .imgCenter .imgBorder } +!!! check + 공유 파일 시스템 생성 후 선택한 프로토콜의 초기 개체가 준비될 때까지 시간이 걸릴 수 있습니다. + 성공 메시지만 확인하지 말고 상세 화면의 프로토콜 탭에서 내보내기, 공유, 대상 또는 네임스페이스의 상태를 확인합니다. - !!! danger - 공유 파일 시스템에서 작업한 모든 데이터가 삭제됩니다. 삭제 전에 반드시 다시 확인해 주세요! +### 기본 정보 -### VM에 네트워크 추가 -2. VM에 네트워크 추가 버튼을 클릭한 화면입니다. - ![VM에 네트워크 추가](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info-vm-network-add.png){ .imgCenter .imgBorder } - - **네트워크:** 네트워크를 선택합니다. - - **IP 주소:** IP 주소를 입력합니다. +1. **기본 정보**를 확장하고 다음 항목을 입력합니다. - !!! info - 해당 네트워크를 기본값으로 설정하면 최우선으로 사용됩니다. +![공유 파일 시스템 기본 정보 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-basic-01.png){ .imgCenter .imgBorder } -### IP 주소 변경 -3. 해당 네트워크의 **+** 버튼을 클릭하여 IP 주소 변경 버튼을 클릭합니다. - ![IP 주소 변경 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info-ip-change-01.png){ .imgCenter .imgBorder } -4. IP 주소 변경 버튼을 클릭한 화면입니다. - ![IP 주소 변경](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info-ip-change-02.png){ .imgCenter .imgBorder } +- **소유자 유형:** 공유 파일 시스템을 소유할 계정 또는 프로젝트 유형을 선택합니다. +- **도메인:** 공유 파일 시스템을 소유할 도메인을 선택합니다. +- **계정:** 공유 파일 시스템을 소유할 계정을 선택합니다. +- **공유 파일 시스템 이름:** 목록에 표시할 이름을 입력합니다. +- **설명:** 공유 파일 시스템에 대한 설명을 입력합니다. +- **Zone:** 공유 파일 시스템을 배포할 Zone을 선택합니다. +- **네트워크:** Storage Service System VM이 사용할 네트워크를 선택합니다. +- **파일 시스템:** 백킹 볼륨에 사용할 XFS 또는 EXT4를 선택합니다. +- **가상머신용 컴퓨트 오퍼링:** Storage Service System VM에 사용할 컴퓨트 오퍼링을 선택합니다. -### 보조 IP 편집 -5. 해당 네트워크의 **+** 버튼을 클릭하여 보조 IP 편집 버튼을 클릭합니다. - ![보조 IP 편집 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info-ip-seconde-update-01.png){ .imgCenter .imgBorder } -6. 보조 IP 편집 버튼을 클릭한 화면입니다. - ![보조 IP 편집](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info-ip-seconde-update-02.png){ .imgCenter .imgBorder } +!!! check + 가상머신용 컴퓨트 오퍼링은 HA가 활성화되어 있고 Storage Service System VM의 최소 CPU 및 메모리 요구사항을 충족해야 합니다. + +### 볼륨 및 백킹 용량 + +새 데이터 볼륨을 생성하거나 기존 데이터 볼륨을 백킹 볼륨으로 사용할 수 있습니다. + +1. 새 데이터 볼륨을 생성하려면 **백킹 볼륨 선택**을 비활성화하고 다음 항목을 입력합니다. + +![새 백킹 볼륨 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-new-01.png){ .imgCenter .imgBorder } + +- **디스크 오퍼링:** 새 데이터 볼륨에 사용할 디스크 오퍼링을 선택합니다. +- **기본 스토리지:** 볼륨을 배치할 기본 스토리지를 선택합니다. +- **데이터 디스크 크기:** 사용자 지정 크기 디스크 오퍼링을 선택한 경우 GiB 단위로 입력합니다. +- **최소 IOPS:** 사용자 지정 IOPS를 사용하는 경우 최소 IOPS를 입력합니다. +- **최대 IOPS:** 사용자 지정 IOPS를 사용하는 경우 최대 IOPS를 입력합니다. +- **필요 시 데이터 디스크 확장 허용:** 생성 후 백킹 볼륨의 크기 확장을 허용할지 선택합니다. + +2. 기존 데이터 볼륨을 사용하려면 **백킹 볼륨 선택**을 활성화하고 다음 항목을 입력합니다. + +![기존 백킹 볼륨 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-existing-01.png){ .imgCenter .imgBorder } + +- **기존 볼륨:** `Ready` 상태이고 다른 가상머신에 연결되지 않은 데이터 볼륨을 선택합니다. +- **선택한 볼륨 크기:** 선택한 기존 볼륨의 실제 크기를 확인합니다. +- **가져오기 방식:** 기존 볼륨을 검사하거나 마운트 또는 포맷할 방식을 선택합니다. + - **검사만 수행:** 기존 파일 시스템과 볼륨 상태를 검사합니다. + - **기존 파일 시스템 마운트:** 기존 파일 시스템을 유지한 채 마운트합니다. + - **새로 포맷:** 선택한 파일 시스템으로 볼륨을 새로 포맷합니다. +- **필요 시 데이터 디스크 확장 허용:** 생성 후 백킹 볼륨의 크기 확장을 허용할지 선택합니다. + +!!! danger + **새로 포맷**을 선택하면 기존 볼륨의 데이터가 삭제될 수 있습니다. + 기존 데이터를 유지해야 하는 경우 **기존 파일 시스템 마운트**를 선택하고 생성 전에 백업 상태를 확인합니다. + +### 서비스 선택 + +1. **서비스 선택**을 확장합니다. +2. NFS, SMB, iSCSI 및 NVMe-oF 가운데 사용할 서비스를 하나 이상 선택합니다. + +![공유 파일 시스템 서비스 선택](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-services-01.png){ .imgCenter .imgBorder } + +!!! info + NFS는 기본으로 선택됩니다. + 여러 서비스를 선택하면 동일한 Storage Service System VM에서 선택한 프로토콜을 함께 운영할 수 있습니다. + +### NFS 설정 + +1. 서비스 선택에서 NFS를 선택하고 **NFS** 영역을 확장합니다. +2. 초기 NFS 내보내기와 접근 허용 목록을 설정합니다. + +![NFS 초기 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nfs-01.png){ .imgCenter .imgBorder } + +- **NFS 내보내기 이름:** 클라이언트에서 사용할 내보내기 이름을 입력합니다. 비워 두면 자동으로 생성됩니다. +- **내부 백킹 경로:** Storage Service System VM에서 사용할 내부 경로를 입력합니다. +- **NFS 내보내기 용량 제한:** 내보내기에서 사용할 수 있는 최대 용량과 단위를 입력합니다. +- **NFS 프로토콜 모드:** **NFSv4 전용** 또는 **NFSv3 + NFSv4**를 선택합니다. +- **프로토콜 포트:** NFS 리스너 포트를 확인합니다. **NFSv3 + NFSv4** 모드에서는 2049 포트를 사용합니다. +- **허용 CIDR:** 접근을 허용할 클라이언트 네트워크를 입력합니다. 비워 두면 전체 접근 허용 정책이 적용될 수 있으므로 보안 정책을 확인합니다. +- **권한:** 읽기/쓰기 또는 읽기 전용을 선택합니다. +- **Root Squash:** 클라이언트의 root 사용자를 제한할지 선택합니다. +- **동기화:** 쓰기 작업을 동기 방식으로 처리할지 선택합니다. +- **특권 포트 요구:** 특권 포트에서 연결한 클라이언트만 허용할지 선택합니다. + +!!! info + NFS 내보내기 이름은 클라이언트에서 마운트하는 경로이고 내부 백킹 경로는 System VM 내부 경로입니다. + 두 값을 같은 개념으로 사용하지 마십시오. + +### SMB 설정 + +1. 서비스 선택에서 SMB를 선택하고 **SMB** 영역을 확장합니다. +2. 초기 SMB 공유와 인증 방식을 설정합니다. + +![SMB 로컬 계정 초기 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-local-01.png){ .imgCenter .imgBorder } + +- **SMB 공유 이름:** 클라이언트에서 사용할 공유 이름을 입력합니다. 비워 두면 자동으로 생성됩니다. +- **내부 백킹 경로:** SMB 공유가 사용할 내부 경로를 입력합니다. +- **SMB 공유 용량 제한:** 공유에서 사용할 수 있는 최대 용량과 단위를 입력합니다. +- **탐색 허용:** 네트워크 탐색에서 공유를 표시할지 선택합니다. +- **게스트 접근:** 인증하지 않은 게스트 접근을 허용할지 선택합니다. +- **읽기 전용:** 공유를 읽기 전용으로 제공할지 선택합니다. +- **인증 방식:** 로컬 계정 또는 Active Directory 도메인을 선택합니다. + +3. 로컬 계정을 사용하는 경우 다음 항목을 입력합니다. + - **로컬 사용자:** SMB에 접속할 로컬 사용자 이름을 입력합니다. + - **권한:** 읽기 전용, 읽기/쓰기 또는 관리자 권한을 선택합니다. + - **로컬 사용자 비밀번호:** 로컬 사용자의 비밀번호를 입력합니다. + - **로컬 사용자 비밀번호 확인:** 동일한 비밀번호를 다시 입력합니다. +4. Active Directory를 사용하는 경우 다음 항목을 입력합니다. + +![SMB Active Directory 초기 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-ad-01.png){ .imgCenter .imgBorder } + +- **AD 도메인:** 가입할 Active Directory 도메인을 입력합니다. +- **사용자 이름:** 도메인 가입 권한이 있는 사용자 이름을 입력합니다. +- **비밀번호:** 도메인 가입에 사용할 비밀번호를 입력합니다. +- **DNS 서버:** Active Directory 도메인을 조회할 DNS 서버를 입력합니다. +- **조직 구성 단위:** 컴퓨터 계정을 생성할 OU를 입력합니다. +- **작업 그룹:** 사용할 NetBIOS 작업 그룹을 입력합니다. +- **초기 SMB 접근 주체 유형:** AD 사용자 또는 AD 그룹을 선택합니다. +- **초기 SMB 접근 주체:** 접근을 허용할 사용자 또는 그룹을 입력합니다. +- **권한:** 읽기 전용, 읽기/쓰기 또는 관리자 권한을 선택합니다. + +!!! danger + SMB 로컬 비밀번호와 Active Directory 비밀번호는 요청할 때만 입력합니다. + 입력한 비밀번호는 상태 화면이나 검토 화면에 다시 표시되지 않습니다. + +### iSCSI 설정 + +1. 서비스 선택에서 iSCSI를 선택하고 **iSCSI** 영역을 확장합니다. +2. 초기 iSCSI 대상, LUN 및 접근 방식을 설정합니다. + +![iSCSI 초기 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-iscsi-01.png){ .imgCenter .imgBorder } + +- **대상 IQN:** iSCSI 대상의 고유한 IQN을 입력합니다. +- **LUN:** 대상에 매핑할 LUN 번호를 입력합니다. +- **권한:** 읽기/쓰기 또는 읽기 전용을 선택합니다. +- **LUN 크기:** LUN에서 사용할 용량과 단위를 입력합니다. 비워 두면 백킹 볼륨 크기를 사용합니다. +- **허용 초기자 IQN:** 접근을 허용할 초기자 IQN을 입력합니다. +- **CHAP 사용:** 단방향 CHAP 인증을 사용할지 선택합니다. +- **상호 CHAP 사용:** 초기자와 대상이 서로 인증할지 선택합니다. +- **CHAP 사용자 이름:** 단방향 CHAP 사용자 이름을 입력합니다. +- **CHAP 비밀값:** 단방향 CHAP Secret을 입력합니다. +- **상호 CHAP 사용자 이름:** 상호 CHAP 사용자 이름을 입력합니다. +- **상호 CHAP 비밀값:** 상호 CHAP Secret을 입력합니다. + +!!! danger + CHAP Secret은 일회성 런타임 입력값입니다. + 상태 정보, 테이블 또는 문서에 Secret 값을 기록하지 마십시오. + +### NVMe-oF 설정 + +1. 서비스 선택에서 NVMe-oF를 선택하고 **NVMe-oF** 영역을 확장합니다. +2. 초기 서브시스템, 네임스페이스와 호스트 접근 정책을 설정합니다. + +![NVMe-oF 초기 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nvmeof-01.png){ .imgCenter .imgBorder } + +- **엔진:** **커널 nvmet**을 선택합니다. +- **전송 방식:** TCP를 선택합니다. +- **프로토콜 포트:** NVMe-oF 리스너 포트를 입력합니다. 기본 포트는 4420입니다. +- **서브시스템 NQN:** NVMe-oF 서브시스템의 고유한 NQN을 입력합니다. +- **네임스페이스 ID:** 서브시스템에 연결할 네임스페이스 ID를 입력합니다. +- **네임스페이스 크기:** 네임스페이스에서 사용할 용량과 단위를 입력합니다. 비워 두면 백킹 볼륨 크기를 사용합니다. +- **허용 호스트 NQN:** 접근을 허용할 클라이언트의 호스트 NQN을 입력합니다. 비워 두면 생성 후 별도의 호스트 ACL을 추가해야 합니다. + +!!! check + 현재 지원하는 NVMe-oF 엔진은 **커널 nvmet**(`KERNEL_NVMET`)입니다. + SPDK는 선택할 수 없는 준비 단계 기능입니다. + +!!! info + 현재 System VM에서는 DH-HMAC-CHAP 인증을 사용할 수 없습니다. + 클라이언트 접근을 제한하려면 호스트 NQN 접근 허용 목록을 사용합니다. + +### 입력 내용 검토 + +1. 생성 화면 왼쪽의 입력 내용 검토에서 소유자, Zone, 네트워크, 볼륨과 선택한 서비스를 확인합니다. +2. 프로토콜별 이름, 내부 경로, 대상 IQN 또는 서브시스템 NQN이 올바른지 확인합니다. +3. 기존 볼륨을 선택한 경우 가져오기 방식을 다시 확인합니다. +4. 인증정보가 검토 화면에 노출되지 않는지 확인하고 **확인** 버튼을 클릭합니다. + +![공유 파일 시스템 생성 내용 검토](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-review-01.png){ .imgCenter .imgBorder } + +## 공유 파일 시스템 업데이트 + +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 업데이트**를 클릭합니다. +2. 이름 또는 설명을 수정하고 **확인** 버튼을 클릭합니다. + +![사용 가능 상태의 공유 파일 시스템 작업 메뉴](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-action-ready-01.png){ .imgCenter .imgBorder } + +![공유 파일 시스템 업데이트](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-01-v2.png){ .imgCenter .imgBorder } + +- **이름:** 목록에 표시할 공유 파일 시스템 이름을 입력합니다. +- **설명:** 공유 파일 시스템에 대한 설명을 입력합니다. ## 공유 파일 시스템 시작 + !!! check - 공유 파일 시스템이 **정지된 상태** 일 경우, 활성화됩니다. + 공유 파일 시스템이 `Stopped` 상태일 때 **공유 파일 시스템 시작** 작업이 활성화됩니다. -1. 공유 파일 시스템 상세 오른쪽 상단의 공유 파일 시스템 시작 버튼을 클릭합니다. - ![공유 파일 시스템 시작 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-start-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 시작 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 시작](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-start-02.png){ .imgCenter .imgBorder } +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 시작**을 클릭합니다. +2. 시작 작업을 확인하고 **확인** 버튼을 클릭합니다. +3. 상태가 `Ready`로 변경되는지 확인합니다. ## 공유 파일 시스템 중지 + !!! check - 공유 파일 시스템이 **실행중** 일 경우, 활성화됩니다. + 공유 파일 시스템이 `Ready` 상태일 때 **공유 파일 시스템 중지** 작업이 활성화됩니다. -1. 공유 파일 시스템 상세 오른쪽 상단의 공유 파일 시스템 중지 버튼을 클릭합니다. - ![공유 파일 시스템 중지 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 중지 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 중지](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-02.png){ .imgCenter .imgBorder } +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 중지**를 클릭합니다. +2. 필요한 경우 **강제**를 선택하고 **확인** 버튼을 클릭합니다. +3. 상태가 `Stopped`로 변경되는지 확인합니다. + +![공유 파일 시스템 중지](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-01-v2.png){ .imgCenter .imgBorder } + +!!! danger + 강제 중지는 연결된 클라이언트 작업을 중단시킬 수 있습니다. + 정상 중지가 불가능한 경우에만 사용합니다. ## 공유 파일 시스템 재시작 -1. 공유 파일 시스템 상세 오른쪽 상단의 공유 파일 시스템 재시작 버튼을 클릭합니다. - ![공유 파일 시스템 재시작 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-01.png){ .imgCenter .imgBorder } -2. 공유 파일 시스템 재시작 버튼을 클릭한 화면입니다. - ![공유 파일 시스템 재시작](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-02.png){ .imgCenter .imgBorder } -## 디스크 오퍼링 변경 -1. 공유 파일 시스템 상세 오른쪽 상단의 디스크 오퍼링 변경 버튼을 클릭합니다. - ![디스크 오퍼링 변경 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-disk-offering-change-01.png){ .imgCenter .imgBorder } -2. 디스크 오퍼링 변경 버튼을 클릭한 화면입니다. - ![디스크 오퍼링 변경](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-disk-offering-change-02.png){ .imgCenter .imgBorder } - - **디스크 오퍼링:** 디스크 오퍼링을 선택합니다. - - **크기:** 를 입력합니다. +!!! check + 공유 파일 시스템이 `Ready`, `Stopped` 또는 `Detached` 상태일 때 **공유 파일 시스템 재시작** 작업이 활성화됩니다. + +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 재시작**을 클릭합니다. +2. 필요한 경우 **정리**를 선택하고 **확인** 버튼을 클릭합니다. +3. 재시작 후 공유 파일 시스템과 프로토콜의 상태를 확인합니다. - !!! info - 고정 디스크 오퍼링을 선택할 시, 해당 크기는 오퍼링에서 고정으로 할당된 값으로 만들어 집니다. +![공유 파일 시스템 재시작](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-01-v2.png){ .imgCenter .imgBorder } - 👉   🔗[디스크 오퍼링 생성 가이드](../mold-admin-guide-offerings-disk-offerings/#_4) +!!! check + 재시작 후 NFS 내보내기, SMB 공유, iSCSI 대상 및 NVMe-oF 네임스페이스의 리스너와 매핑 상태를 확인합니다. ## 서비스 오퍼링 변경 + !!! check - 공유 파일 시스템이 **정지된 상태** 일 경우, 활성화됩니다. + 공유 파일 시스템이 `Stopped` 상태일 때 **서비스 오퍼링 변경** 작업이 활성화됩니다. -1. 공유 파일 시스템 상세 오른쪽 상단의 서비스 오퍼링 변경 버튼을 클릭합니다. - ![서비스 오퍼링 변경 버튼](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-service-offering-change-01.png){ .imgCenter .imgBorder } -2. 서비스 오퍼링 변경 버튼을 클릭한 화면입니다. - ![서비스 오퍼링 변경](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-service-offering-change-02.png){ .imgCenter .imgBorder } - - **컴퓨트 오퍼링:** 디스크 오퍼링을 선택합니다. +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **서비스 오퍼링 변경**을 클릭합니다. +2. 변경할 컴퓨트 오퍼링을 선택하고 **확인** 버튼을 클릭합니다. +3. 공유 파일 시스템을 시작하고 변경된 컴퓨트 오퍼링을 확인합니다. + +- **컴퓨트 오퍼링:** Storage Service System VM에 적용할 가상머신용 컴퓨트 오퍼링을 선택합니다. !!! info - 서비스 오퍼링을 변경할 경우, 미리 사전에 생성되어 있어야 합니다. + 서비스 오퍼링을 변경하려면 사용할 가상머신용 컴퓨트 오퍼링이 미리 생성되어 있어야 합니다. + 변경 목록에는 사용자 지정 오퍼링이 아니고 HA가 활성화되어 있으며 시스템의 최소 CPU 및 메모리 요구사항을 충족하는 오퍼링만 표시됩니다. + + 👉   🔗[가상머신용 컴퓨트 오퍼링 생성 가이드](../mold-admin-guide-offerings-compute-offerings/#_5) + +## 공유 파일 시스템 파기 + +!!! check + `Ready` 상태에서 파기하려면 먼저 공유 파일 시스템을 중지하거나 파기 화면에서 **강제**를 선택해야 합니다. - 👉   🔗[컴퓨트 오퍼링 생성 가이드](../mold-admin-guide-offerings-compute-offerings/#_4) +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 파기**를 클릭합니다. +2. **제거**와 **강제** 선택 여부를 확인합니다. +3. 파기 작업을 계속하려면 **확인** 버튼을 클릭합니다. + +![공유 파일 시스템 파기](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-01-v2.png){ .imgCenter .imgBorder } + +!!! danger + 공유 파일 시스템을 파기하면 클라이언트 연결과 프로토콜 서비스가 중단됩니다. + **제거**를 선택하지 않으면 `Destroyed` 상태에서 복구할 수 있습니다. + **제거**를 선택하면 공유 파일 시스템을 바로 삭제하여 복구할 수 없으므로 작업 전에 데이터 백업과 선택 항목을 확인합니다. + +## 공유 파일 시스템 복구 + +!!! check + 공유 파일 시스템이 `Destroyed` 상태일 때 **공유 파일 시스템 복구** 작업이 활성화됩니다. + +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 복구**를 클릭합니다. +2. 복구 작업을 확인하고 **확인** 버튼을 클릭합니다. +3. 복구 후 공유 파일 시스템의 상태와 백킹 볼륨을 확인합니다. + +## 공유 파일 시스템 삭제 + +!!! check + 공유 파일 시스템이 `Destroyed`, `Expunging` 또는 `Error` 상태일 때 삭제 작업이 표시될 수 있습니다. + +1. 공유 파일 시스템 상세 화면 오른쪽 상단의 작업 메뉴에서 **공유 파일 시스템 삭제**를 클릭합니다. +2. 삭제할 자원과 데이터 볼륨을 확인하고 **확인** 버튼을 클릭합니다. + +!!! danger + 삭제한 공유 파일 시스템과 데이터는 복구할 수 없습니다. + 공유 파일 시스템 복구가 필요한 경우 삭제 작업을 실행하지 마십시오. ## 공유 파일 시스템 상세 탭 -1. 공유 파일 시스템에 대한 상세 정보를 확인하는 화면입니다. 해당 공유 파일 시스템에 대한 크기, UUID, 이름 등 상세 정보를 확인할 수 있습니다. - ![공유 파일 시스템 상세 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-detail-info.png){ .imgCenter .imgBorder } -## 공유 파일 시스템 액세스 탭 -1. 공유 파일 시스템에 대한 액세스 정보를 확인하는 화면입니다. 해당 공유 파일 시스템에 대한 마운트 정보를 확인할 수 있습니다. - ![공유 파일 시스템 액세스 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-access-info.png){ .imgCenter .imgBorder } +1. 목록에서 확인할 공유 파일 시스템의 이름을 클릭합니다. +2. **상세** 탭에서 상태, ID, 크기, 읽기·쓰기 통계, 네트워크, VM, 볼륨, 컴퓨트 오퍼링, 스토리지 풀, Zone 및 소유자 정보를 확인합니다. +3. Storage Service 개요에서 활성화된 서비스 유형을 확인합니다. + +![공유 파일 시스템 상세 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-detail-01-v2.png){ .imgCenter .imgBorder } + +## NFS 탭 + +1. 공유 파일 시스템 상세 화면에서 **NFS** 탭을 선택합니다. +2. **접속 정보**에서 클라이언트 마운트 명령을 확인합니다. +3. 상태 요약에서 엔드포인트, 모니터링 캐시와 마지막 새로고침 시간을 확인합니다. + +![공유 파일 시스템 NFS 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-overview-01.png){ .imgCenter .imgBorder } + +### NFS 내보내기 관리 + +1. NFS 내보내기를 생성하려면 **NFS 내보내기 생성**을 클릭합니다. +2. 내보내기 이름, 내부 백킹 경로, 백킹 볼륨, 용량 제한, NFS 프로토콜 모드, 리스너, 권한과 내보내기 옵션을 입력합니다. +3. 기존 내보내기의 작업 영역에서 편집, 파일 공유 용량 확장 또는 삭제를 실행합니다. + +![NFS 내보내기 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-export-01.png){ .imgCenter .imgBorder } + +!!! check + NFS 내보내기의 수신 포트 그룹이 TCP 2049인지 확인합니다. + 현재 배포 UI에서 SMB용 TCP 445 포트 그룹이 자동 선택되면 작업을 제출하지 말고 NFS용 TCP 2049 포트 그룹을 다시 선택합니다. + +!!! danger + NFS 내보내기를 삭제하기 전에 클라이언트에서 마운트를 해제하고 사용 중인 세션이 없는지 확인합니다. + +### NFS 접근 허용 목록 관리 + +1. 접근 허용 목록을 추가하려면 **NFS ACL 생성**을 클릭합니다. +2. 허용할 CIDR, 권한, Root Squash, 동기화와 특권 포트 요구 여부를 입력합니다. +3. 기존 접근 허용 목록의 작업 영역에서 편집 또는 삭제를 실행합니다. + +![NFS 접근 허용 목록 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-acl-01.png){ .imgCenter .imgBorder } + +!!! info + 기본 전체 허용 정책이 표시되는 경우 운영 환경에 필요한 CIDR만 허용하도록 접근 정책을 검토합니다. + +### NFS 리스너, 백킹 볼륨 및 세션 +1. **수신 포트 그룹**에서 리스너 포트와 실제 엔드포인트를 확인합니다. +2. **백킹 볼륨**에서 파일 시스템, 내부 경로, 용량과 연결 상태를 확인합니다. +3. **세션**에서 연결된 클라이언트와 마지막 관찰 시간을 확인합니다. +4. 프로토콜을 준비하려면 **프로토콜 활성화**를 클릭합니다. +5. 사용하지 않는 엔드포인트를 제거하려면 **엔드포인트 제거**를 클릭합니다. + +!!! check + 리스너 또는 엔드포인트를 제거하기 전에 해당 포트를 사용하는 내보내기와 클라이언트 연결이 없는지 확인합니다. + NFS 세션 종료는 최선 노력 방식으로 처리되므로 클라이언트에서 마운트가 해제되었는지도 확인합니다. + +## SMB 탭 + +1. 공유 파일 시스템 상세 화면에서 **SMB** 탭을 선택합니다. +2. **접속 정보**에서 UNC 경로, `net use` 또는 `smbclient` 연결 예시를 확인합니다. +3. 상태 요약에서 엔드포인트, 인증 방식, 도메인 상태, SMB 서비스와 모니터링 캐시를 확인합니다. + +![공유 파일 시스템 SMB 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-overview-01.png){ .imgCenter .imgBorder } + +### SMB 공유 관리 + +1. SMB 공유를 생성하려면 **SMB 공유 생성**을 클릭합니다. +2. 공유 이름, 내부 백킹 경로, 백킹 볼륨, 용량 제한과 공유 옵션을 입력합니다. +3. 기존 공유의 작업 영역에서 편집, 파일 공유 용량 확장 또는 삭제를 실행합니다. + +![SMB 공유 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-share-01.png){ .imgCenter .imgBorder } + +### SMB 접근 및 계정 관리 + +1. 접근 권한을 추가하려면 **SMB ACL 생성**을 클릭합니다. +2. 로컬 사용자, AD 사용자 또는 AD 그룹과 권한을 입력합니다. +3. 로컬 계정을 생성할 경우 비밀번호를 요청 화면에서 입력합니다. +4. 기존 접근 허용 목록의 작업 영역에서 편집 또는 삭제를 실행합니다. + +![SMB 접근 허용 목록 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-acl-01.png){ .imgCenter .imgBorder } + +!!! danger + SMB 계정 비밀번호는 작업 요청에만 입력하며 테이블이나 상태 정보에서 다시 조회할 수 없습니다. + +### Active Directory 관리 + +1. Active Directory를 사용하려면 **AD 도메인 가입**을 클릭합니다. +2. 도메인, 사용자 이름, 비밀번호, DNS 서버, 조직 구성 단위와 작업 그룹을 입력합니다. +3. 도메인 상태에서 가입 상태, 상태 점검과 Trust 정보를 확인합니다. +4. 도메인 사용을 중단하려면 도메인 탈퇴 작업을 실행합니다. + +![SMB Active Directory 도메인 가입](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-ad-01.png){ .imgCenter .imgBorder } + +!!! check + Active Directory 도메인 가입 전에 Storage Service System VM이 도메인 DNS 서버와 시간 동기화 서버에 연결할 수 있는지 확인합니다. + +### SMB 리스너, 백킹 볼륨 및 세션 + +1. **수신 포트 그룹**에서 SMB 리스너와 실제 엔드포인트를 확인합니다. +2. **백킹 볼륨**에서 내부 경로, 용량과 연결 상태를 확인합니다. +3. **세션**에서 사용자, 클라이언트, 공유 이름과 연결 상태를 확인합니다. +4. 지원되는 세션에서 **세션 종료** 작업을 실행합니다. + +## iSCSI 탭 + +1. 공유 파일 시스템 상세 화면에서 **iSCSI** 탭을 선택합니다. +2. **접속 정보**에서 `iscsiadm`을 사용하는 검색과 로그인 예시를 확인합니다. +3. 상태 요약에서 엔드포인트, 서비스 상태와 모니터링 캐시를 확인합니다. + +![공유 파일 시스템 iSCSI 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-overview-01.png){ .imgCenter .imgBorder } + +### iSCSI 대상 및 LUN 관리 + +1. iSCSI 대상을 생성하려면 **iSCSI 대상 생성**을 클릭합니다. +2. 대상 IQN, LUN, 백킹 볼륨, LUN 크기, 리스너와 권한을 입력합니다. +3. 기존 대상의 작업 영역에서 편집 또는 삭제를 실행합니다. +4. 대상 목록에서 런타임 백킹 경로와 매핑 상태를 확인합니다. + +![iSCSI 대상과 LUN 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-target-01.png){ .imgCenter .imgBorder } + +### iSCSI 접근 허용 목록과 CHAP + +1. 접근 허용 목록을 추가하려면 **iSCSI ACL 생성**을 클릭합니다. +2. 허용할 초기자 IQN과 권한을 입력합니다. +3. CHAP를 사용할 경우 사용자 이름과 Secret을 입력합니다. +4. 상호 CHAP를 사용할 경우 상호 CHAP 사용자 이름과 Secret을 추가로 입력합니다. +5. 기존 접근 허용 목록의 작업 영역에서 편집 또는 삭제를 실행합니다. + +![iSCSI 접근 허용 목록과 CHAP 설정](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-acl-01.png){ .imgCenter .imgBorder } + +!!! danger + CHAP Secret은 일회성 입력값이며 저장된 값을 화면에서 다시 확인할 수 없습니다. + 변경 전에 초기자 측 인증정보와 함께 갱신할 준비를 합니다. + +### iSCSI 리스너, 백킹 볼륨 및 세션 + +1. **수신 포트 그룹**에서 iSCSI 리스너와 실제 엔드포인트를 확인합니다. +2. **백킹 볼륨**에서 LUN에 연결된 볼륨, 크기와 연결 상태를 확인합니다. +3. **세션**에서 초기자 IQN, 대상 IQN, LUN, 인증 상태와 엔드포인트를 확인합니다. +4. 지원되는 세션에서 **세션 종료** 작업을 실행합니다. + +## NVMe-oF 탭 + +1. 공유 파일 시스템 상세 화면에서 **NVMe-oF** 탭을 선택합니다. +2. **접속 정보**에서 `nvme discover`와 `nvme connect` 예시를 확인합니다. +3. 상태 요약에서 엔드포인트, 엔진, 모니터링 캐시와 DH-HMAC-CHAP 지원 상태를 확인합니다. + +![공유 파일 시스템 NVMe-oF 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-overview-01.png){ .imgCenter .imgBorder } + +### NVMe-oF 준비 + +1. **NVMe-oF 준비**를 클릭합니다. +2. 엔진으로 **커널 nvmet**을 선택합니다. +3. 준비 상태와 필수 커널 기능을 확인하고 작업을 실행합니다. + +![NVMe-oF 서비스 준비](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-prepare-01.png){ .imgCenter .imgBorder } + +!!! check + SPDK는 준비 또는 예정 상태로만 표시되며 현재 활성화할 수 없습니다. + +### 서브시스템 및 네임스페이스 관리 + +1. 서브시스템을 생성하려면 **NVMe-oF 서브시스템 생성**을 클릭합니다. +2. 서브시스템 NQN, 엔진, 전송 방식, 리스너 포트와 호스트 접근 정책을 입력합니다. +3. 네임스페이스를 생성하려면 **NVMe-oF 네임스페이스 생성**을 클릭합니다. +4. 서브시스템, 네임스페이스 ID, 백킹 볼륨, 크기와 리스너를 입력합니다. +5. 기존 서브시스템과 네임스페이스의 작업 영역에서 편집 또는 삭제를 실행합니다. + +![NVMe-oF 서브시스템 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-subsystem-01.png){ .imgCenter .imgBorder } + +![NVMe-oF 네임스페이스 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-namespace-01.png){ .imgCenter .imgBorder } + +!!! danger + 네임스페이스 또는 서브시스템을 삭제하기 전에 클라이언트 연결을 해제하고 사용 중인 세션이 없는지 확인합니다. + +### 호스트 NQN 접근 허용 목록 + +1. 호스트 NQN 접근 허용 목록을 추가하려면 **NVMe-oF 호스트 ACL 생성**을 클릭합니다. +2. 서브시스템과 접근을 허용할 호스트 NQN을 입력합니다. +3. 기존 호스트 NQN 접근 허용 목록의 작업 영역에서 편집 또는 삭제를 실행합니다. + +![NVMe-oF 호스트 NQN 접근 허용 목록](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-host-acl-01.png){ .imgCenter .imgBorder } + +!!! info + 모든 호스트 허용 정책을 사용하는 서브시스템에는 개별 호스트 NQN 접근 허용 목록을 추가할 수 없습니다. + 개별 호스트만 허용하려면 먼저 서브시스템의 모든 호스트 허용 정책을 비활성화합니다. + +### NVMe-oF 리스너, 백킹 볼륨 및 세션 + +1. **NVMe-oF 수신 포트 그룹**에서 TCP 리스너와 실제 엔드포인트를 확인합니다. +2. **백킹 볼륨**에서 네임스페이스에 연결된 볼륨, 런타임 경로와 매핑 상태를 확인합니다. +3. **세션**에서 호스트 NQN, 서브시스템, 네임스페이스, 접근 정책, 큐 수와 엔드포인트를 확인합니다. +4. **세션 종료**가 활성화된 세션에서만 종료 작업을 실행합니다. + +## 백킹 볼륨 관리 + +### 백킹 볼륨 연결 + +1. 프로토콜 탭의 **백킹 볼륨** 영역에서 **기존 볼륨 연결**을 클릭합니다. +2. 연결할 데이터 볼륨과 가져오기 방식을 선택합니다. +3. 선택한 볼륨이 다른 가상머신에 연결되어 있지 않은지 확인하고 작업을 실행합니다. + +![공유 파일 시스템 백킹 볼륨 관리](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-backing-volume-01.png){ .imgCenter .imgBorder } + +### 백킹 볼륨 분리 + +1. **백킹 볼륨** 목록에서 분리할 볼륨의 **볼륨 연결 해제**를 클릭합니다. +2. 해당 볼륨을 사용하는 NFS 내보내기, SMB 공유, iSCSI LUN 또는 NVMe-oF 네임스페이스가 없는지 확인합니다. +3. 분리 작업을 실행하고 볼륨 상태를 확인합니다. + +!!! check + 프로토콜 개체에서 사용 중인 백킹 볼륨은 분리할 수 없습니다. + 먼저 해당 내보내기, 공유, LUN 또는 네임스페이스 연결을 정리합니다. + +!!! info + **볼륨 연결 해제**는 Storage Service System VM에서 연결만 해제하며 볼륨과 데이터는 삭제하지 않습니다. + 볼륨을 삭제하려면 **스토리지 > 볼륨**에서 별도로 삭제해야 합니다. + +### 백킹 볼륨 확장 + +1. **백킹 볼륨** 목록에서 **볼륨 확장**을 클릭합니다. +2. **새 볼륨 크기(GiB)**에 현재 크기보다 큰 정수 값을 입력합니다. +3. 작업 완료 후 볼륨 크기와 프로토콜 개체의 용량을 확인합니다. + +!!! danger + 백킹 볼륨 확장은 축소할 수 없습니다. + 볼륨과 파일 시스템의 백업 상태를 확인한 후 실행합니다. ## 공유 파일 시스템 네트워크 탭 -1. 공유 파일 시스템에 대한 네트워크 정보를 확인하는 화면입니다. 해당 공유 파일 시스템에 대한 네트워크 정보를 확인할 수 있습니다. - ![공유 파일 시스템 네트워크 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-info.png){ .imgCenter .imgBorder } -## 공유 파일 시스템 매트릭 탭 -1. 공유 파일 시스템에 대한 매트릭 정보를 확인하는 화면입니다. 해당 공유 파일 시스템에 대한 CPU, Memory, Network 등 할당량 및 사용량을 확인할 수 있습니다. - ![공유 파일 시스템 매트릭 탭1](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metric-info-01.png){ .imgCenter .imgBorder } - ![공유 파일 시스템 매트릭 탭2](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metric-info-02.png){ .imgCenter .imgBorder } +1. 공유 파일 시스템 상세 화면에서 **네트워크** 탭을 선택합니다. +2. 연결된 네트워크와 기본 IP를 확인합니다. L2가 아닌 네트워크에서는 보조 IP도 확인할 수 있습니다. + +![공유 파일 시스템 네트워크 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-01-v2.png){ .imgCenter .imgBorder } + +### VM에 네트워크 추가 + +1. **VM에 네트워크 추가**를 클릭합니다. +2. 연결할 네트워크와 IP 주소를 선택하고 **확인** 버튼을 클릭합니다. + +![공유 파일 시스템 VM에 네트워크 추가](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-add-01-v2.png){ .imgCenter .imgBorder } - !!! info - 사용자가 원하는 시간과 단위 등을 커스터마이징 할 수 있습니다. +- **네트워크:** Storage Service System VM에 연결할 네트워크를 선택합니다. +- **IP 주소:** 네트워크에서 사용할 IP 주소를 입력합니다. + +!!! info + 네트워크를 기본값으로 설정하면 Storage Service System VM의 기본 네트워크로 사용됩니다. + +### IP 주소 또는 MAC 주소 변경 + +1. 변경할 네트워크의 작업 메뉴에서 **IP 주소 또는 MAC 주소 변경**을 클릭합니다. +2. 새 IP 주소 또는 MAC 주소를 입력하고 **확인** 버튼을 클릭합니다. +3. 프로토콜 탭에서 실제 엔드포인트가 갱신되었는지 확인합니다. + +![공유 파일 시스템 IP 주소 또는 MAC 주소 변경](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-ip-change-01-v2.png){ .imgCenter .imgBorder } + +### 보조 IP 편집 + +!!! check + **보조 IP 편집**은 L2가 아닌 네트워크에서만 표시됩니다. + NIC 유형이 L2이면 이 작업을 사용할 수 없습니다. + +1. 변경할 네트워크의 작업 메뉴에서 **보조 IP 편집**을 클릭합니다. +2. 보조 IP를 추가하거나 제거하고 **확인** 버튼을 클릭합니다. +3. 리스너 포트 그룹과 실제 엔드포인트를 확인합니다. + +### NIC 식별 정보 복구 + +Storage Service의 데이터베이스 네트워크 정보와 실행 중인 System VM의 NIC 정보가 다르면 프로토콜 탭에 NIC 식별 정보 경고가 표시됩니다. + +1. 경고 내용을 확인하고 변경된 네트워크가 의도한 구성인지 확인합니다. +2. **NIC 식별 정보 복구**를 클릭합니다. +3. 데이터베이스에 반영할 NIC와 IP 정보를 확인하고 복구 작업을 실행합니다. +4. 작업 후 각 프로토콜 탭의 리스너와 엔드포인트를 다시 확인합니다. + +!!! danger + NIC 식별 정보 복구는 실행 중인 System VM의 기본 IPv4를 기준으로 데이터베이스의 기본 IPv4만 교정합니다. + 가상머신 네트워크와 보조 IP는 변경하지 않습니다. + 의도하지 않은 네트워크 변경이 없는지 확인한 후 실행합니다. + +## 공유 파일 시스템 메트릭 탭 + +1. 공유 파일 시스템 상세 화면에서 **메트릭** 탭을 선택합니다. +2. CPU, 메모리, 네트워크와 디스크의 사용량을 확인합니다. +3. 필요한 기간과 단위를 선택하여 추이를 확인합니다. + +![공유 파일 시스템 메트릭 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metrics-01-v2.png){ .imgCenter .imgBorder } ## 공유 파일 시스템 이벤트 탭 -1. 공유 파일 시스템에 대한 이벤트 정보를 확인하는 화면입니다. 해당 공유 파일 시스템에 대한 유형 및 생성일 등 확인할 수 있습니다. - ![공유 파일 시스템 이벤트 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-event-info.png){ .imgCenter .imgBorder } + +1. 공유 파일 시스템 상세 화면에서 **이벤트** 탭을 선택합니다. +2. 공유 파일 시스템과 관련된 이벤트 유형, 상태, 설명 및 생성 시간을 확인합니다. +3. 생성, 시작, 중지, 재시작, 네트워크 또는 프로토콜 작업의 결과를 확인합니다. + +![공유 파일 시스템 이벤트 탭](../../assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-events-01-v2.png){ .imgCenter .imgBorder } + +## 제한사항 + +- NVMe-oF는 **커널 nvmet**(`KERNEL_NVMET`) 엔진만 사용할 수 있습니다. +- SPDK 엔진은 준비 또는 예정 상태이며 현재 선택할 수 없습니다. +- 현재 System VM 커널에서는 NVMe-oF DH-HMAC-CHAP 호스트 인증과 컨트롤러 인증을 사용할 수 없습니다. +- 호스트 NQN 접근 허용 목록은 DH-HMAC-CHAP 지원 여부와 관계없이 사용할 수 있습니다. +- NFSv4 전용 내보내기는 개별 IP가 아니라 리스너 포트 그룹을 기준으로 노출됩니다. +- **NFSv3 + NFSv4** 모드는 서비스 전체의 TCP 2049 리스너를 사용합니다. +- 공유 파일 시스템의 디스크 오퍼링 변경 API는 호환성을 위해 남아 있지만 최신 UI에서는 해당 작업을 제공하지 않습니다. +- SMB 비밀번호, Active Directory 비밀번호, CHAP Secret과 DH-HMAC-CHAP 키는 요청에만 사용되며 화면이나 API 응답에서 다시 조회할 수 없습니다. +- HugePage, NUMA, CPU 고정, memlock, SR-IOV 및 PCI Passthrough 설정은 현재 Storage Service 관리 범위에 포함되지 않습니다. ## 용어사전 + +- **Storage Service System VM:** NFS, SMB, iSCSI 및 NVMe-oF 서비스를 실행하는 전용 시스템 가상머신입니다. +- **백킹 볼륨:** 파일 공유, LUN 또는 네임스페이스의 실제 데이터를 저장하는 데이터 볼륨입니다. +- **내부 백킹 경로:** Storage Service System VM 안에서 파일 공유가 사용하는 경로입니다. +- **ACL:** 클라이언트 네트워크, 사용자, 초기자 또는 호스트의 접근을 허용하거나 제한하는 규칙입니다. +- **리스너 포트 그룹:** 프로토콜 서비스가 요청을 수신하는 IP와 포트의 논리적인 그룹입니다. +- **IQN:** iSCSI 초기자와 대상을 구분하는 고유 이름입니다. +- **LUN:** iSCSI 대상이 클라이언트에 제공하는 논리 블록 장치 번호입니다. +- **NQN:** NVMe-oF 호스트와 서브시스템을 구분하는 고유 이름입니다. +- **네임스페이스:** NVMe-oF 서브시스템이 클라이언트에 제공하는 논리 블록 장치입니다. +- **CHAP:** iSCSI 연결에서 사용자 이름과 Secret을 사용하여 인증하는 방식입니다. +- **Root Squash:** NFS 클라이언트의 root 사용자를 제한된 사용자로 매핑하는 기능입니다. diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-action-ready-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-action-ready-01.png new file mode 100644 index 00000000..b452728c Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-action-ready-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-backing-volume-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-backing-volume-01.png new file mode 100644 index 00000000..48a879b0 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-backing-volume-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-basic-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-basic-01.png new file mode 100644 index 00000000..7b881d48 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-basic-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-iscsi-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-iscsi-01.png new file mode 100644 index 00000000..c4550382 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-iscsi-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nfs-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nfs-01.png new file mode 100644 index 00000000..d5e6dc3b Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nfs-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nvmeof-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nvmeof-01.png new file mode 100644 index 00000000..5e40dd5b Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-nvmeof-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-review-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-review-01.png new file mode 100644 index 00000000..6d46adf8 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-review-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-services-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-services-01.png new file mode 100644 index 00000000..384dc12f Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-services-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-ad-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-ad-01.png new file mode 100644 index 00000000..2cd0bea3 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-ad-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-local-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-local-01.png new file mode 100644 index 00000000..c34b1d66 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-smb-local-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-existing-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-existing-01.png new file mode 100644 index 00000000..38c5db42 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-existing-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-new-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-new-01.png new file mode 100644 index 00000000..107efdeb Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-create-volume-new-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-01-v2.png new file mode 100644 index 00000000..d8aa82c3 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-destroy-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-detail-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-detail-01-v2.png new file mode 100644 index 00000000..f9b5d299 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-detail-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-events-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-events-01-v2.png new file mode 100644 index 00000000..7211d4f1 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-events-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-acl-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-acl-01.png new file mode 100644 index 00000000..fdeeec9c Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-acl-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-overview-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-overview-01.png new file mode 100644 index 00000000..36e10660 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-overview-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-target-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-target-01.png new file mode 100644 index 00000000..c390762b Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-iscsi-target-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-list-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-list-01.png new file mode 100644 index 00000000..feae2be6 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-list-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metrics-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metrics-01-v2.png new file mode 100644 index 00000000..92225388 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-metrics-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-01-v2.png new file mode 100644 index 00000000..e4297509 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-add-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-add-01-v2.png new file mode 100644 index 00000000..d027da45 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-add-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-ip-change-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-ip-change-01-v2.png new file mode 100644 index 00000000..0fc1692c Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-network-ip-change-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-acl-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-acl-01.png new file mode 100644 index 00000000..65081dc2 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-acl-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-export-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-export-01.png new file mode 100644 index 00000000..513717d9 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-export-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-overview-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-overview-01.png new file mode 100644 index 00000000..6659096d Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nfs-overview-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-host-acl-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-host-acl-01.png new file mode 100644 index 00000000..5ead1df3 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-host-acl-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-namespace-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-namespace-01.png new file mode 100644 index 00000000..3fa97a63 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-namespace-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-overview-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-overview-01.png new file mode 100644 index 00000000..3c08ccfb Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-overview-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-prepare-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-prepare-01.png new file mode 100644 index 00000000..63bd5dbb Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-prepare-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-subsystem-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-subsystem-01.png new file mode 100644 index 00000000..a5d2475c Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-nvmeof-subsystem-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-01-v2.png new file mode 100644 index 00000000..83b19665 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-restart-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-acl-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-acl-01.png new file mode 100644 index 00000000..d8605ef4 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-acl-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-ad-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-ad-01.png new file mode 100644 index 00000000..06e48f86 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-ad-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-overview-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-overview-01.png new file mode 100644 index 00000000..69f74f1c Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-overview-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-share-01.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-share-01.png new file mode 100644 index 00000000..1980d5a0 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-smb-share-01.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-01-v2.png new file mode 100644 index 00000000..f12af46a Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-stop-01-v2.png differ diff --git a/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-01-v2.png b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-01-v2.png new file mode 100644 index 00000000..036c86f0 Binary files /dev/null and b/docs/assets/images/admin-guide/mold/storage/shared-file-system/shared-file-system-update-01-v2.png differ diff --git a/resources/work-plans/europa-storage-service-sharedfs-doc-plan.md b/resources/work-plans/europa-storage-service-sharedfs-doc-plan.md new file mode 100644 index 00000000..41e94796 --- /dev/null +++ b/resources/work-plans/europa-storage-service-sharedfs-doc-plan.md @@ -0,0 +1,1525 @@ +# Europa Storage Service SharedFS 문서 개편 작업 계획 + +## 1. 목적 + +`ablestack-cloud`의 `codex/europa-storage-service` 브랜치에서 확장한 Storage Service 기능을 기존 ABLESTACK 공유 파일 시스템 관리 가이드에 반영한다. + +기존 문서의 URL, 파일 경로, Markdown 작성 형식을 유지하면서 최신 테스트 환경에서 확인한 NFS, SMB, iSCSI, NVMe-oF 관리 절차와 화면을 문서화한다. + +## 2. 작업 기준 + +- 문서 저장소: `ablestack-docs` +- 문서 기준 브랜치: `master` +- 문서 작업 브랜치: `codex/europa-storage-service-docs` +- Cloud 기능 기준 브랜치: `codex/europa-storage-service` +- Cloud 기능 기준 커밋: `1ef2ca37f77ffea29a7a2bff711e8f9b54d198aa` +- 최신 SharedFS 테스트 UI: `http://10.10.22.10:8080/client/#/sharedfs` +- 초기 로그인 사용자: `admin` +- 작업 대상 본문: + `docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md` +- 이미지 디렉터리: + `docs/assets/images/admin-guide/mold/storage/shared-file-system/` +- 메뉴 설정: + `mkdocs.yml` + +로그인 비밀번호는 운영자가 대화에서 제공한 값을 작업 중에만 사용한다. 비밀번호나 기타 인증정보를 문서, 계획, 메모, 스크립트, 명령 기록, 파일명 또는 화면 이미지에 저장하지 않는다. + +## 3. 공통 작업 원칙 + +1. 총 9단계를 한 단계씩 수행한다. +2. 각 단계의 완료 조건을 확인한 후 결과를 보고한다. +3. 사용자 확인 없이 다음 단계로 진행하지 않는다. +4. Cloud 저장소는 기능 확인 용도로만 사용하고 코드는 수정하지 않는다. +5. 문서 저장소의 관련 없는 파일과 기존 사용자 변경은 수정하지 않는다. +6. 기존 문서 URL과 파일 경로를 유지한다. +7. 기존 Markdown 파일에서 사용하는 형식을 그대로 따른다. +8. 실제 배포 UI와 소스가 다르면 추정해서 작성하지 않고 차이를 보고한다. +9. 기능이 배포되었거나 검증되었다는 판단은 실제 UI, 소스 및 검증 기록이 일치할 때만 한다. + +## 4. Markdown 형식 기준 + +- 기존 `#`, `##`, `###` 제목 계층을 유지한다. +- 사용자 작업 절차는 번호 목록으로 작성한다. +- 입력 필드는 기존 문서처럼 굵은 글씨 목록으로 설명한다. +- 안내와 경고는 기존 MkDocs admonition 형식을 사용한다. + - `!!! info` + - `!!! check` + - `!!! danger` +- 기존 상대 경로 링크 형식을 유지한다. +- 기존 문체와 운영자 관점의 표현을 유지한다. +- 대상 절만 수정하고 파일 전체를 불필요하게 재포맷하지 않는다. +- 이미지는 다음 형식을 사용한다. + +```markdown +![이미지 설명](../../assets/images/admin-guide/mold/storage/shared-file-system/파일명.png){ .imgCenter .imgBorder } +``` + +## 5. 한국어 화면 캡처 기준 + +1. 최신 SharedFS 테스트 UI를 한국어로 설정한다. +2. 브라우저 확대 비율은 100%를 기본으로 사용한다. +3. 웹폰트와 화면 데이터가 완전히 로드된 후 캡처한다. +4. 제목, 탭, 버튼, 테이블, 모달, 도움말 및 경고 메시지의 한글을 확인한다. +5. 깨진 자모, 네모 문자, 물음표, 원문 locale key 또는 잘린 한글이 있으면 해당 이미지를 사용하지 않는다. +6. 로딩 표시, 알림 잔상, 불필요한 툴팁 겹침이 있는 화면은 사용하지 않는다. +7. 계정, 비밀번호, AD 인증정보, CHAP Secret 및 기타 민감정보가 보이는 화면은 사용하지 않는다. +8. PNG 원본 해상도를 유지하고 한글 품질을 저하시키는 재압축을 하지 않는다. +9. 캡처 직후 원본 크기로 열어 한글을 육안 검수한다. +10. Markdown 렌더링 후 문서 화면에서 한글과 이미지 배치를 다시 검수한다. +11. 기존 이미지를 바로 덮어쓰지 않고 새 파일명으로 추가한 뒤 Markdown 참조를 전환한다. +12. 미사용 기존 이미지 삭제는 별도 목록으로 보고한 후 처리한다. + +## 6. 단계별 실행 계획 + +### 1단계. 작업 기준 브랜치 동기화 및 계획 문서 기록 + +목표: + +- 문서 작업의 기준 커밋과 브랜치를 확정한다. +- 이후 단계에서 계속 참고할 9단계 계획 문서를 저장소에 남긴다. + +작업: + +1. `upstream`과 `origin`을 각각 fetch한다. +2. 로컬 `master`를 `upstream/master`로 fast-forward한다. +3. `master...upstream/master`가 `0 0`인지 확인한다. +4. `codex/europa-storage-service-docs` 작업 브랜치를 생성한다. +5. 본 계획 문서를 `resources/work-plans/`에 기록한다. + +완료 조건: + +- 로컬 `master`와 `upstream/master`가 일치한다. +- 문서 작업 브랜치가 생성되어 있다. +- 9단계 계획과 공통 검수 조건이 저장소에 기록되어 있다. +- SharedFS 본문과 이미지는 아직 변경되지 않았다. + +### 2단계. Cloud 기능 소스와 최신 배포 UI의 문서화 대상 기능 확정 + +목표: + +- 현재 문서에 반영할 실제 기능과 제한사항을 확정한다. + +작업: + +1. `codex/europa-storage-service`의 UI, API, 설계 및 검증 기록을 확인한다. +2. 최신 SharedFS 테스트 UI에 로그인한다. +3. 목록, 생성, 상세 및 프로토콜별 관리 화면을 한국어로 확인한다. +4. NFS, SMB, iSCSI, NVMe-oF의 실제 지원 기능을 확인한다. +5. 기존 볼륨, 용량 확장, ACL, 리스너, 세션, AD, NIC identity 기능을 확인한다. +6. SPDK 등 제한되거나 준비되지 않은 기능을 구분한다. +7. 소스와 배포 UI의 차이를 기록한다. + +완료 조건: + +- 문서화할 기능, 제외할 기능 및 제한사항 목록이 확정되어 있다. +- 실제 UI의 메뉴명, 탭명, 버튼명과 작업 흐름이 기록되어 있다. +- 소스와 배포 UI의 차이가 있으면 사용자에게 보고되어 있다. + +### 3단계. 기존 SharedFS 문서 구조와 신규 기능의 절별 매핑 확정 + +목표: + +- 기존 절을 유지, 수정, 교체 또는 삭제할지 결정한다. + +작업: + +1. 기존 문서의 제목, 절, 이미지 및 링크를 목록화한다. +2. 기존 절과 최신 UI 기능을 일대일로 매핑한다. +3. `디스크 오퍼링 변경` 등 제거된 UI 기능을 식별한다. +4. 기존 NFS 전용 액세스 절을 프로토콜별 관리 절로 재구성한다. +5. 네트워크, 메트릭, 이벤트 등 유지할 절을 확정한다. +6. 새 문서 목차와 캡처 목록을 확정한다. + +완료 조건: + +- 절별 유지/수정/교체/삭제 매트릭스가 완성되어 있다. +- 최종 목차와 필요한 이미지 목록이 확정되어 있다. +- 아직 본문과 이미지는 변경하지 않는다. + +### 4단계. 기존 Markdown 형식을 유지한 본문 초안 작성 + +목표: + +- 검증된 기능을 기존 문서 형식으로 작성한다. + +작업: + +1. 기존 파일을 직접 수정한다. +2. 개요와 사전 준비사항을 최신 기능 기준으로 갱신한다. +3. 생성 절차를 기본 정보, 볼륨, 서비스 선택 및 프로토콜 설정으로 작성한다. +4. NFS, SMB, iSCSI, NVMe-oF 운영 절차를 작성한다. +5. 볼륨 연결·분리·확장, 네트워크 및 런타임 상태를 작성한다. +6. 파괴적 작업, 인증정보 및 제한 기능 경고를 추가한다. +7. 이미지 위치는 캡처 대상이 명확한 자리표시자로 관리한다. + +완료 조건: + +- 계획한 모든 절의 텍스트 초안이 작성되어 있다. +- 기존 Markdown 형식과 문체가 유지되어 있다. +- 검증되지 않은 기능이 확정 표현으로 작성되지 않았다. +- 실제 비밀번호나 비밀정보가 포함되지 않았다. + +### 5단계. 한국어 UI 화면 캡처 및 원본 품질 검수 + +목표: + +- 최신 UI와 일치하고 한글이 정상인 문서용 PNG를 확보한다. + +작업: + +1. 목록, 생성 및 상세 화면을 순서대로 캡처한다. +2. 기본 정보, 볼륨, 서비스 선택 및 검토 영역을 캡처한다. +3. NFS, SMB, iSCSI, NVMe-oF 설정 화면을 캡처한다. +4. 프로토콜별 상세 탭을 캡처한다. +5. ACL, 리스너, 세션, 볼륨 및 AD 관련 주요 모달을 캡처한다. +6. 네트워크, 메트릭 및 이벤트 화면을 캡처한다. +7. 각 이미지를 원본 크기로 열어 한글과 민감정보를 검사한다. +8. 파일명을 `shared-file-system-기능명-순번.png` 형식으로 정리한다. + +완료 조건: + +- 필요한 캡처가 모두 준비되어 있다. +- 모든 이미지에서 한글이 정상적으로 표시된다. +- 민감정보가 노출된 이미지가 없다. +- 원본 품질 검수 결과가 기록되어 있다. + +### 6단계. 검수된 이미지와 본문을 기존 문서 경로에 통합 + +목표: + +- 검수된 화면을 본문 절차에 정확히 연결한다. + +작업: + +1. 검수된 PNG를 기존 이미지 디렉터리에 추가한다. +2. 본문의 자리표시자를 실제 이미지 참조로 교체한다. +3. 이미지 설명과 절차 단계가 화면 내용과 일치하는지 확인한다. +4. 기존 이미지 중 계속 사용할 파일과 대체된 파일을 구분한다. +5. 미사용 이미지 후보를 별도 목록으로 작성한다. + +완료 조건: + +- 모든 이미지 참조가 유효하다. +- 이미지 순서와 본문 절차가 일치한다. +- 이미지 문법이 기존 문서 형식과 동일하다. +- 기존 이미지의 삭제는 사용자 확인 없이 수행하지 않는다. + +### 7단계. 내용·용어·절차·제한사항 최종 대조 + +목표: + +- 문서 내용이 소스와 실제 배포 UI를 정확히 반영하도록 한다. + +작업: + +1. 버튼, 탭, 필드 및 상태 명칭을 실제 한국어 UI와 비교한다. +2. 각 작업 순서를 실제 화면에서 다시 따라간다. +3. NFS 모드, SMB 인증, iSCSI CHAP, NVMe-oF 엔진 및 ACL 설명을 대조한다. +4. 기존 볼륨과 `FORMAT_NEW`의 파괴적 동작 경고를 확인한다. +5. SPDK 등 제한 기능의 표현을 확인한다. +6. `매트릭`을 `메트릭`으로 정리하는 등 용어를 교정한다. + +완료 조건: + +- 실제 UI와 문서의 명칭 및 절차가 일치한다. +- 지원 기능과 제한 기능이 명확히 구분되어 있다. +- 민감정보 처리와 파괴적 작업 경고가 포함되어 있다. + +### 8단계. MkDocs strict 빌드·링크·한글·보안·변경 범위 검증 + +목표: + +- 문서가 배포 가능한 품질인지 기술적으로 검증한다. + +작업: + +1. `git diff --check`를 실행한다. +2. Markdown 원문이 UTF-8인지 확인한다. +3. 이미지 경로와 파일 존재 여부를 검사한다. +4. 내부 링크와 목차 앵커를 확인한다. +5. 제공된 비밀번호와 기타 민감정보가 변경 파일에 없는지 검사한다. +6. 임시 출력 디렉터리로 strict 빌드를 실행한다. + +```bash +mkdocs build --strict --clean --site-dir <임시 디렉터리> +``` + +7. 로컬 렌더링에서 본문, admonition, 표, 이미지와 한글을 확인한다. +8. `git status --short`로 변경 범위를 확인한다. + +완료 조건: + +- `git diff --check`가 통과한다. +- MkDocs strict 빌드가 통과한다. +- 깨진 링크, 이미지 또는 한글이 없다. +- 비밀번호와 비밀정보가 변경 파일에 없다. +- 변경 범위가 계획한 문서와 이미지로 제한되어 있다. + +### 9단계. 최종 결과 보고 및 승인된 Git 전달 절차 수행 + +목표: + +- 검증 결과를 사용자에게 전달하고 승인된 범위만 Git으로 전달한다. + +작업: + +1. 변경된 문서 구조를 보고한다. +2. 추가·대체 이미지 목록을 보고한다. +3. 제거하거나 변경한 기존 절을 보고한다. +4. 지원 기능과 제한사항을 보고한다. +5. 빌드, 링크, 한글, 보안 검증 결과를 보고한다. +6. 전체 변경 파일을 보고한다. +7. 승인된 파일만 stage하고 변경 내용을 요약한 커밋을 생성한다. +8. 작업 브랜치를 `origin`으로 push한다. +9. 한글 제목과 본문을 사용하여 `upstream/master` 대상 PR을 생성한다. +10. upstream에는 직접 push하지 않는다. +11. PR 병합 후 로컬 `master`를 다시 `upstream/master`와 동기화한다. + +완료 조건: + +- 최종 변경 및 검증 결과가 보고되어 있다. +- 사용자 승인 범위만 커밋되어 있다. +- 요청된 경우 origin push와 upstream PR이 완료되어 있다. +- 병합 후 로컬 기준 브랜치가 다시 동기화되어 있다. + +## 7. 단계 진행 현황 + +| 단계 | 상태 | 완료일 | 비고 | +| --- | --- | --- | --- | +| 1. 작업 기준 브랜치 동기화 및 계획 문서 기록 | 완료 | 2026-07-24 | `master...upstream/master = 0 0`, 작업 브랜치 생성 | +| 2. Cloud 기능 소스와 최신 배포 UI의 문서화 대상 기능 확정 | 완료 | 2026-07-24 | 기능·제한사항·UI 차이 확정, 본문과 이미지 미변경 | +| 3. 기존 SharedFS 문서 구조와 신규 기능의 절별 매핑 확정 | 완료 | 2026-07-24 | 기존 17개 절·28개 이미지 매핑, 최종 목차·캡처 목록 확정 | +| 4. 기존 Markdown 형식을 유지한 본문 초안 작성 | 완료 | 2026-07-24 | 다중 프로토콜 본문 초안과 42개 캡처 위치 작성 | +| 5. 한국어 UI 화면 캡처 및 원본 품질 검수 | 완료 | 2026-07-24 | 한국어 PNG 38개 검수, 안전상 4개 캡처 제외 | +| 6. 검수된 이미지와 본문을 기존 문서 경로에 통합 | 완료 | 2026-07-24 | 검수 PNG 38개 연결, 미확보 4개 주석 유지 | +| 7. 내용·용어·절차·제한사항 최종 대조 | 완료 | 2026-07-24 | 소스·한국어 UI 대조, 상태 조건·용어·제한사항 교정 | +| 8. MkDocs strict 빌드·링크·한글·보안·변경 범위 검증 | 완료 | 2026-07-24 | strict 빌드·95개 내부 링크·38개 이미지·한글 렌더링·민감정보·변경 범위 검증 통과 | +| 9. 최종 결과 보고 및 승인된 Git 전달 절차 수행 | 완료 | 2026-07-24 | 40개 파일 커밋·origin push·upstream/master 대상 draft PR #205 생성 | + +## 8. 완료 정의 + +다음 조건을 모두 만족해야 전체 작업을 완료한 것으로 판단한다. + +1. 최신 테스트 UI와 문서의 메뉴명, 버튼명 및 절차가 일치한다. +2. 기존 문서 URL과 Markdown 형식이 유지된다. +3. 모든 캡처 이미지의 한글이 정상이다. +4. 문서와 이미지에 비밀번호 또는 기타 민감정보가 없다. +5. 지원 기능과 제한 기능이 명확히 구분되어 있다. +6. 모든 링크와 이미지가 유효하다. +7. MkDocs strict 빌드가 통과한다. +8. 계획하지 않은 파일이 변경되지 않는다. + +## 9. 2단계 결과: 문서화 대상 기능 확정 + +### 9.1 확인 기준 + +- Cloud 소스 브랜치: `codex/europa-storage-service` +- Cloud 소스 커밋: `1ef2ca37f77ffea29a7a2bff711e8f9b54d198aa` +- 배포 UI: `http://10.10.22.10:8080/client/#/sharedfs` +- 확인일: 2026-07-24 +- 소스 확인 범위: + - `ui/src/views/storage/CreateSharedFS.vue` + - `ui/src/views/storage/SharedFSTab.vue` + - `ui/src/config/section/storage.js` + - Storage Service API 명령 + - `StorageServiceManagerImpl` + - `ablestack-storagectl` + - Storage Service 설계 및 검증 기록 + +Cloud 저장소의 작업 트리에 있던 관련 없는 파일은 변경하지 않았다. 테스트 UI에서는 조회와 모달 열기만 수행하고 생성, 수정, 삭제 또는 복구 작업을 실행하지 않았다. + +### 9.2 사용자 진입점과 공통 화면 + +최신 배포 UI의 사용자 진입점은 계속 **공유 파일 시스템**이다. 내부 구현은 Storage Service로 확장되었지만 문서 제목과 메뉴 안내는 실제 UI 명칭을 따른다. + +문서화할 공통 화면은 다음과 같다. + +1. **공유 파일 시스템 목록** + - 이름 + - 상태 + - 크기 + - 스토리지 + - 계정 + - Zone +2. **공유 파일시스템 생성** + - 기본 정보 + - 볼륨 및 백킹 용량 + - 서비스 선택 + - 프로토콜별 초기 설정 + - 입력 내용 검토 +3. **상세 화면** + - 상세 + - NFS + - SMB + - iSCSI + - NVMe-oF + - 네트워크 + - 메트릭 + - 이벤트 +4. **공유 파일 시스템 수명주기** + - 업데이트 + - 시작 + - 중지 + - 재시작 + - 컴퓨트 오퍼링 변경 + - 파기 + - 복구 + - 완전 삭제 + +시작과 컴퓨트 오퍼링 변경은 중지 상태에서만 나타나는 등 상태에 따라 작업 메뉴가 달라지는 점을 문서에 명시한다. + +### 9.3 생성 화면의 문서화 범위 + +#### 기본 정보 + +- 공유 파일 시스템 이름과 설명 +- Zone +- 네트워크 +- 파일 시스템 `XFS` 또는 `EXT4` +- 가상머신용 컴퓨트 오퍼링 + +#### 볼륨 및 백킹 용량 + +- 새 데이터 볼륨 생성 + - 디스크 오퍼링 + - 기본 스토리지 + - 데이터 디스크 크기 + - 최소 및 최대 IOPS + - 크기 조정 허용 +- 기존 데이터 볼륨 선택 + - `Ready` 상태이고 다른 가상머신에 연결되지 않은 볼륨만 선택 + - 실제 볼륨 크기를 기준으로 사용 +- 기존 볼륨 가져오기 모드 + - **검사만 수행** + - **기존 파일 시스템 마운트** + - **새로 포맷** + +**새로 포맷**은 기존 데이터를 제거할 수 있는 파괴적 작업이므로 문서에 `!!! danger` 경고를 추가한다. 기존 볼륨의 기본 가져오기 방식은 비파괴적인 **기존 파일 시스템 마운트**로 안내한다. + +#### 서비스 선택 + +- NFS +- SMB +- iSCSI +- NVMe-oF + +NFS는 기본 선택되며, 네 서비스 가운데 하나 이상을 선택해야 한다. 하나의 Storage Service System VM에서 여러 프로토콜을 함께 제공할 수 있다는 점을 개요에 반영한다. + +### 9.4 프로토콜별 문서화 범위 + +| 프로토콜 | 생성 및 관리 대상 | 접근 제어 | 연결과 모니터링 | 문서화 상태 | +| --- | --- | --- | --- | --- | +| NFS | 내보내기, 백킹 경로, 용량 제한, NFS 모드, 리스너 | CIDR ACL, 읽기/쓰기, Root Squash, 동기화, 특권 포트 | 마운트 명령, 리스너, 백킹 볼륨, 세션 | 지원 기능으로 문서화 | +| SMB | 공유, 백킹 경로, 용량 제한, 탐색·게스트·읽기 전용 설정 | 로컬 계정 또는 AD 사용자·그룹 ACL | UNC 및 `smbclient`, 인증 상태, 백킹 볼륨, 세션 | 지원 기능으로 문서화 | +| iSCSI | 대상 IQN, LUN, LUN 크기, 리스너 | Initiator IQN ACL, CHAP, 상호 CHAP | `iscsiadm`, 매핑 상태, 백킹 볼륨, 세션 | 지원 기능으로 문서화 | +| NVMe-oF | 서브시스템 NQN, 네임스페이스, TCP 리스너, Kernel NVMe Target 준비 | 모든 호스트 허용 정책 또는 Host NQN ACL | `nvme discover`와 `nvme connect`, 백킹 볼륨, 세션 | Kernel NVMe Target만 지원 기능으로 문서화 | + +#### NFS + +- 초기 NFS 내보내기 생성 +- 클라이언트에 노출할 내보내기 이름과 내부 백킹 경로 구분 +- NFSv4 전용 모드 +- NFSv3과 NFSv4 호환 모드 +- TCP 2049 리스너 그룹 +- 내보내기 생성, 수정, 삭제 및 용량 확장 +- CIDR ACL 생성, 수정 및 삭제 +- 백킹 볼륨 확장 +- 연결 예시와 세션 확인 + +NFSv4 전용 모드는 개별 내보내기의 특정 IP 고정 방식이 아니라 리스너 포트 그룹 기준이라는 설계 제약을 운영자가 이해할 수 있는 수준으로 설명한다. + +#### SMB + +- 초기 SMB 공유 생성 +- 로컬 계정 인증 +- Active Directory 도메인 가입과 탈퇴 +- 도메인, DNS, Realm, NetBIOS 및 OU 상태 확인 +- 공유 생성, 수정, 삭제 및 용량 확장 +- 로컬 사용자 또는 AD 사용자·그룹 ACL 생성, 수정 및 삭제 +- 백킹 볼륨 확장 +- 연결 예시와 세션 확인 + +AD 비밀번호와 SMB 로컬 계정 비밀번호는 일회성 런타임 입력이며 문서나 캡처에 값을 노출하지 않는다. + +#### iSCSI + +- 초기 iSCSI 대상과 LUN 생성 +- 대상 IQN과 LUN 번호 +- LUN 크기와 백킹 볼륨 +- Initiator IQN ACL 생성, 수정 및 삭제 +- 단방향 CHAP와 상호 CHAP +- 백킹 볼륨 확장 +- 연결 예시와 세션 확인 및 연결 해제 + +CHAP 사용자 이름은 상태 정보로 표시될 수 있지만 CHAP Secret은 저장하거나 다시 표시하지 않는다는 점을 안내한다. + +#### NVMe-oF + +- `KERNEL_NVMET` 기반 Kernel NVMe Target 준비 +- TCP 전송과 기본 포트 4420 +- 서브시스템 생성, 수정 및 삭제 +- 네임스페이스 생성, 수정 및 삭제 +- 모든 호스트 허용 정책 +- Host NQN ACL 생성, 수정 및 삭제 +- 백킹 볼륨 확장 +- 연결 예시와 세션 확인 및 연결 해제 + +현재 System VM의 커널 및 configfs에는 `dhchap_key`와 `dhchap_ctrl_key` 기능이 없어 DH-HMAC-CHAP 호스트 인증과 컨트롤러 인증을 사용할 수 없다. Host NQN ACL은 사용할 수 있으므로 두 기능을 구분하여 설명한다. + +### 9.5 공통 운영 기능 + +다음 기능은 프로토콜별 상세 절과 공통 운영 절에 반영한다. + +- 프로토콜 활성화와 엔드포인트 제거 +- 프로토콜별 리스너 포트 그룹 +- 파일 공유 또는 LUN·네임스페이스 용량 확장 +- 백킹 볼륨 연결, 분리 및 확장 +- 사용 중인 백킹 볼륨의 분리 제한 +- 런타임 상태와 모니터링 캐시 +- 연결 정보와 클라이언트 명령 예시 +- 세션 목록과 지원되는 세션 연결 해제 +- Storage Service NIC identity 불일치 경고와 복구 작업 +- 서비스 상태 새로고침 + +NIC identity 경고는 최신 테스트 자원에서 실제로 확인되었다. 문서에는 경고의 의미와 복구 버튼의 위치를 설명하되 테스트 환경의 일시적인 IP 주소는 기록하지 않는다. + +### 9.6 문서화하지 않거나 제한 기능으로만 설명할 항목 + +| 항목 | 처리 | +| --- | --- | +| 공유 파일 시스템 디스크 오퍼링 변경 | API 호환성은 남아 있지만 최신 UI 작업 메뉴에서 제거되었으므로 사용자 절차에서 삭제 | +| SPDK NVMe-oF 엔진 | UI에 준비 또는 예정 상태로만 나타나며 선택할 수 없으므로 지원 기능으로 작성하지 않음 | +| NVMe-oF DH-HMAC-CHAP | 현재 System VM에서 미지원으로 명시하고 활성화 절차를 작성하지 않음 | +| HugePage, NUMA, CPU 고정, memlock, SR-IOV, PCI Passthrough | 현재 Storage Service UI와 문서 범위에서 제외 | +| 인증 비밀번호와 Secret 재조회 | 저장하거나 반환하지 않는 값이므로 조회 절차를 작성하지 않음 | +| 내부 백킹 경로를 클라이언트 경로로 직접 사용 | 외부 이름과 내부 경로가 분리되어 있으므로 잘못된 기존 개념으로 안내하지 않음 | + +### 9.7 소스와 최신 배포 UI의 차이 및 문서 처리 + +1. 내부 기능명은 Storage Service이지만 배포 메뉴와 생성 창은 **공유 파일 시스템** 명칭을 유지한다. + - 문서는 사용자에게 보이는 **공유 파일 시스템**을 기본 명칭으로 사용한다. + - 개요에서 NFS 전용 기능이 다중 프로토콜 Storage Service로 확장되었다고 설명한다. +2. `changeSharedFileSystemDiskOffering` API는 소스에 남아 있지만 UI 작업 메뉴에는 없다. + - 기존 문서의 디스크 오퍼링 변경 절차는 최신 기능으로 다루지 않는다. +3. 컴퓨트 오퍼링 변경은 중지 상태에서만 소스와 UI에 노출된다. + - 상태 조건을 포함하여 유지한다. +4. SPDK는 소스의 확장 지점이지만 생성 화면에서 비활성화되어 있다. + - 현재 지원 엔진은 `KERNEL_NVMET`으로 한정한다. +5. 최신 배포 자원에서 NIC identity 불일치 경고와 복구 작업이 노출되었다. + - 안정적인 기능 설명은 포함하되 일시적인 자원 값은 문서와 이미지에서 제외한다. +6. 생성 화면의 문서 도움말 링크는 이전 `adminguide/storage.html` 경로를 참조한다. + - 이번 작업은 실제 관리 가이드 본문을 개편하지만 Cloud UI 링크 수정은 범위에 포함하지 않는다. +7. 일부 공통 선택 항목의 API 도움말은 영어로 표시된다. + - 5단계 캡처에서는 한국어가 완전히 표시되는 안정적인 화면만 사용하고, 필요한 화면에 영어 도움말이 남아 있으면 별도 결함으로 보고한다. +8. 상세 탭의 Storage Service 개요가 테스트 중 일시적으로 로딩 상태를 유지했지만 프로토콜 탭의 데이터는 정상 조회되었다. + - 개요의 동적 값은 확정 근거로 사용하지 않고 소스와 프로토콜별 실제 화면을 기준으로 작성한다. + +### 9.8 검증 근거와 캡처 조건 + +- 설계 및 검증 기록에서 NFS, SMB, iSCSI 및 NVMe-oF의 연결, 읽기, 되돌릴 수 있는 쓰기, 연결 해제와 재부팅 복구 통과 기록을 확인했다. +- 최신 UI에서 목록, 생성, 상세 및 네 프로토콜 탭의 한국어 명칭과 주요 작업 버튼을 확인했다. +- 확인 중 브라우저 콘솔의 오류와 경고는 발생하지 않았다. +- 2단계에서는 화면 구조만 확인했으며 문서용 이미지는 저장하지 않았다. +- 실제 캡처는 5단계에서 수행하고 원본 크기로 한글, 민감정보, 로딩 상태 및 일시적인 경고 값을 다시 검사한다. + +### 9.9 2단계 완료 판정 + +다음 항목이 확정되어 2단계를 완료한다. + +1. 문서화할 공통 기능과 네 프로토콜의 지원 범위 +2. 기존 볼륨, 용량 확장, ACL, 리스너, 세션, AD 및 NIC identity 기능 +3. `KERNEL_NVMET`과 현재 System VM의 DH-HMAC-CHAP 제한 +4. SPDK와 VM 런타임 튜닝 기능의 제외 범위 +5. 실제 메뉴, 탭, 버튼 명칭과 상태별 작업 조건 +6. 디스크 오퍼링 변경 API와 UI 제거 상태의 차이 +7. 3단계에서 기존 문서 구조와 매핑할 기능 목록 + +SharedFS 본문, `mkdocs.yml` 및 기존 이미지는 아직 변경하지 않았다. + +## 10. 3단계 결과: 기존 문서 구조와 신규 기능 매핑 + +### 10.1 기존 문서 구성 + +기존 문서는 168줄이며 다음 16개 `##` 절과 3개 `###` 절로 구성되어 있다. + +| 순서 | 기존 절 | 현재 내용 | +| --- | --- | --- | +| 1 | 개요 | NFS 전용 공유 파일 시스템 구조 | +| 2 | 공유 파일 시스템 목록 조회 | 목록과 생성 버튼 | +| 3 | 공유 파일 시스템 생성 | 단일 볼륨과 NFS 중심 생성 필드 | +| 4 | 공유 파일 시스템 업데이트 | 이름과 설명 변경 | +| 5 | 공유 파일 시스템 파기 | 파기 절차와 데이터 삭제 경고 | +| 6 | VM에 네트워크 추가 | 네트워크 연결 | +| 7 | IP 주소 변경 | 기본 IP 변경 | +| 8 | 보조 IP 편집 | 보조 IP 관리 | +| 9 | 공유 파일 시스템 시작 | 중지 상태의 시작 작업 | +| 10 | 공유 파일 시스템 중지 | 실행 상태의 중지 작업 | +| 11 | 공유 파일 시스템 재시작 | 재시작 작업 | +| 12 | 디스크 오퍼링 변경 | 디스크 오퍼링과 크기 변경 | +| 13 | 서비스 오퍼링 변경 | 중지 상태의 컴퓨트 오퍼링 변경 | +| 14 | 공유 파일 시스템 상세 탭 | 기본 상세 정보 | +| 15 | 공유 파일 시스템 액세스 탭 | NFS 마운트 정보 | +| 16 | 공유 파일 시스템 네트워크 탭 | 연결된 네트워크 | +| 17 | 공유 파일 시스템 매트릭 탭 | 자원 사용량 | +| 18 | 공유 파일 시스템 이벤트 탭 | 이벤트 목록 | +| 19 | 용어사전 | 내용 없음 | + +`VM에 네트워크 추가`, `IP 주소 변경`, `보조 IP 편집`은 현재 문서에서 파기 절 아래에 배치되어 있다. 최종 문서에서는 네트워크 탭의 하위 절로 이동한다. + +### 10.2 기존 이미지와 링크 + +- 기존 PNG: 28개 +- Markdown에서 참조하는 PNG: 28개 +- 참조되지 않은 PNG: 없음 +- 누락된 PNG: 없음 +- 기존 이미지 크기: 모두 1918×966 +- 기존 상대 링크: + - 네트워크 생성 가이드 + - 디스크 오퍼링 생성 가이드 + - 가상머신용 컴퓨트 오퍼링 생성 가이드 +- `mkdocs.yml`의 메뉴: + - `공유 파일 시스템: admin-guide/mold/mold-admin-guide-storage-shared-file-system.md` + +기존 URL과 `mkdocs.yml` 메뉴 경로는 유지한다. 상대 링크 표현 방식도 기존 Markdown과 동일하게 유지하되 실제로 연결할 하위 절은 다음과 같이 정리한다. + +| 링크 | 최종 연결 대상 | +| --- | --- | +| 네트워크 생성 가이드 | 가상머신용 네트워크의 **공유 파일 시스템 전용 네트워크 생성** | +| 디스크 오퍼링 생성 가이드 | 디스크 오퍼링의 **디스크 오퍼링 추가** | +| 가상머신용 컴퓨트 오퍼링 생성 가이드 | 컴퓨트 오퍼링의 **공유 파일 시스템 전용 컴퓨트 오퍼링 추가** | + +### 10.3 기존 절 처리 매트릭스 + +| 기존 절 | 처리 | 최종 반영 내용 | +| --- | --- | --- | +| 개요 | 수정 | NFS 전용 설명을 NFS, SMB, iSCSI, NVMe-oF 다중 프로토콜 Storage Service 설명으로 교체 | +| 공유 파일 시스템 목록 조회 | 유지·수정 | 최신 목록 열과 생성 진입점 반영 | +| 공유 파일 시스템 생성 | 유지·대폭 확장 | 기본 정보, 새 볼륨·기존 볼륨, 서비스 선택, 네 프로토콜 설정, 검토 단계로 분리 | +| 공유 파일 시스템 업데이트 | 유지·수정 | 최신 작업 메뉴와 이름·설명 수정 절차 확인 | +| 공유 파일 시스템 파기 | 유지·수정 | 파기와 즉시 삭제 선택의 차이 및 데이터 경고 강화 | +| VM에 네트워크 추가 | 이동·수정 | 네트워크 탭 아래로 이동 | +| IP 주소 변경 | 이동·수정 | 네트워크 탭 아래로 이동 | +| 보조 IP 편집 | 이동·수정 | 네트워크 탭 아래로 이동 | +| 공유 파일 시스템 시작 | 유지·수정 | `Stopped` 상태 조건과 최신 버튼명 반영 | +| 공유 파일 시스템 중지 | 유지·수정 | `Ready` 상태 조건과 강제 중지 선택 반영 | +| 공유 파일 시스템 재시작 | 유지·수정 | 지원 상태와 정리 선택 반영 | +| 디스크 오퍼링 변경 | 삭제 | 최신 UI에서 제거되었으므로 본문 절 삭제 | +| 서비스 오퍼링 변경 | 유지·수정 | 실제 UI 명칭 **서비스 오퍼링 변경**과 `Stopped` 상태 조건 유지 | +| 공유 파일 시스템 상세 탭 | 유지·확장 | 기본 상세 정보와 Storage Service 개요 설명 | +| 공유 파일 시스템 액세스 탭 | 교체 | 단일 액세스 탭을 NFS, SMB, iSCSI, NVMe-oF 탭으로 교체 | +| 공유 파일 시스템 네트워크 탭 | 유지·확장 | 네트워크 작업과 NIC identity 복구 안내 포함 | +| 공유 파일 시스템 매트릭 탭 | 유지·명칭 수정 | 실제 UI에 맞게 **메트릭**으로 교정 | +| 공유 파일 시스템 이벤트 탭 | 유지·수정 | 최신 이벤트 화면과 확인 항목 반영 | +| 용어사전 | 유지·작성 | Storage Service, 백킹 볼륨, ACL, IQN, NQN 등 추가 | + +### 10.4 신규로 추가할 절 + +| 신규 절 | 추가 이유 | +| --- | --- | +| 사전 준비 사항 | 네트워크, 디스크 오퍼링, 컴퓨트 오퍼링과 프로토콜별 클라이언트 요구사항 안내 | +| 기존 볼륨 가져오기 | 검사, 기존 파일 시스템 마운트, 새로 포맷의 차이와 파괴적 작업 경고 | +| 공유 파일 시스템 복구 | `Destroyed` 상태에서 제공되는 복구 작업 | +| 공유 파일 시스템 삭제 | 파기된 자원을 완전히 삭제하는 작업과 복구 불가 경고 | +| NFS 탭 | 내보내기, ACL, 리스너, 백킹 볼륨, 세션 관리 | +| SMB 탭 | 공유, ACL, 로컬 계정, AD 도메인, 백킹 볼륨, 세션 관리 | +| iSCSI 탭 | 대상, LUN, Initiator ACL, CHAP, 백킹 볼륨, 세션 관리 | +| NVMe-oF 탭 | Kernel NVMe Target, 서브시스템, 네임스페이스, Host ACL, 세션 관리 | +| 백킹 볼륨 관리 | 볼륨 연결, 분리, 확장과 사용 중 제한을 공통 절차로 설명 | +| 제한사항 | SPDK와 DH-HMAC-CHAP 등 현재 제공되지 않는 기능 구분 | + +### 10.5 최종 문서 목차 + +기존 문서의 `#`, `##`, `###` 계층을 유지하여 다음 목차로 작성한다. + +```markdown +# 공유 파일 시스템 + +## 개요 +## 사전 준비 사항 +## 공유 파일 시스템 목록 조회 +## 공유 파일 시스템 생성 +### 기본 정보 +### 볼륨 및 백킹 용량 +### 서비스 선택 +### NFS 설정 +### SMB 설정 +### iSCSI 설정 +### NVMe-oF 설정 +### 입력 내용 검토 +## 공유 파일 시스템 업데이트 +## 공유 파일 시스템 시작 +## 공유 파일 시스템 중지 +## 공유 파일 시스템 재시작 +## 서비스 오퍼링 변경 +## 공유 파일 시스템 파기 +## 공유 파일 시스템 복구 +## 공유 파일 시스템 삭제 +## 공유 파일 시스템 상세 탭 +## NFS 탭 +### NFS 내보내기 관리 +### NFS 접근 허용 목록 관리 +### NFS 리스너, 백킹 볼륨 및 세션 +## SMB 탭 +### SMB 공유 관리 +### SMB 접근 및 계정 관리 +### Active Directory 관리 +### SMB 리스너, 백킹 볼륨 및 세션 +## iSCSI 탭 +### iSCSI 대상 및 LUN 관리 +### iSCSI 접근 허용 목록과 CHAP +### iSCSI 리스너, 백킹 볼륨 및 세션 +## NVMe-oF 탭 +### NVMe-oF 준비 +### 서브시스템 및 네임스페이스 관리 +### Host NQN 접근 허용 목록 +### NVMe-oF 리스너, 백킹 볼륨 및 세션 +## 백킹 볼륨 관리 +### 백킹 볼륨 연결 +### 백킹 볼륨 분리 +### 백킹 볼륨 확장 +## 공유 파일 시스템 네트워크 탭 +### VM에 네트워크 추가 +### IP 주소 변경 +### 보조 IP 편집 +### NIC identity 복구 +## 공유 파일 시스템 메트릭 탭 +## 공유 파일 시스템 이벤트 탭 +## 제한사항 +## 용어사전 +``` + +### 10.6 기존 이미지 처리 + +최신 UI, 테스트 환경 및 한국어 화면 기준을 충족하기 위해 기존 28개 이미지는 본문에서 모두 새 이미지로 전환한다. + +| 기존 이미지 그룹 | 개수 | 처리 | +| --- | ---: | --- | +| 목록과 생성 | 3 | 최신 다중 프로토콜 생성 화면으로 대체 | +| 업데이트와 파기 | 4 | 최신 작업 메뉴와 모달로 대체 | +| 네트워크 | 6 | 최신 네트워크 탭과 모달로 대체 | +| 시작, 중지, 재시작 | 6 | 최신 상태별 작업 화면으로 대체 | +| 디스크 오퍼링 변경 | 2 | 본문 참조 제거, 삭제 후보로만 기록 | +| 서비스 오퍼링 변경 | 2 | 최신 중지 상태 화면으로 대체 | +| 상세와 액세스 | 2 | 최신 상세와 네 프로토콜 탭으로 대체 | +| 메트릭과 이벤트 | 3 | 최신 화면으로 대체 | + +기존 PNG 파일은 3단계에서 삭제하지 않는다. 6단계에서 새 이미지 참조가 정상인지 확인한 뒤 미사용 이미지 후보로 보고하고, 사용자 확인 없이 삭제하지 않는다. + +### 10.7 신규 캡처 목록 + +모든 파일은 기존 파일과 충돌하지 않는 새 이름을 사용한다. 다음 목록은 문서 구조를 충족하기 위한 필수 캡처 기준이다. + +#### 목록과 생성 + +1. `shared-file-system-list-01.png` + - 공유 파일 시스템 목록과 생성 버튼 +2. `shared-file-system-create-basic-01.png` + - 기본 정보 +3. `shared-file-system-create-volume-new-01.png` + - 새 데이터 볼륨 +4. `shared-file-system-create-volume-existing-01.png` + - 기존 볼륨과 가져오기 모드 +5. `shared-file-system-create-services-01.png` + - NFS, SMB, iSCSI, NVMe-oF 서비스 선택 +6. `shared-file-system-create-nfs-01.png` + - 초기 NFS 설정 +7. `shared-file-system-create-smb-local-01.png` + - SMB 로컬 계정 설정 +8. `shared-file-system-create-smb-ad-01.png` + - SMB Active Directory 설정 +9. `shared-file-system-create-iscsi-01.png` + - iSCSI 대상, LUN 및 CHAP 설정 +10. `shared-file-system-create-nvmeof-01.png` + - Kernel NVMe Target, 서브시스템 및 네임스페이스 설정 +11. `shared-file-system-create-review-01.png` + - 입력 내용 검토 + +#### 공통 수명주기 + +12. `shared-file-system-action-ready-01.png` + - `Ready` 상태의 작업 메뉴 +13. `shared-file-system-update-01-v2.png` + - 이름과 설명 업데이트 +14. `shared-file-system-stop-01-v2.png` + - 중지와 강제 중지 선택 +15. `shared-file-system-restart-01-v2.png` + - 재시작과 정리 선택 +16. `shared-file-system-destroy-01-v2.png` + - 파기와 즉시 삭제 선택 +17. `shared-file-system-action-stopped-01.png` + - `Stopped` 상태의 시작 및 서비스 오퍼링 변경 메뉴 +18. `shared-file-system-service-offering-01-v2.png` + - 서비스 오퍼링 변경 +19. `shared-file-system-action-destroyed-01.png` + - `Destroyed` 상태의 복구 및 삭제 메뉴 + +상태별 화면은 기존 테스트 자원이 해당 상태인 경우에만 캡처한다. 캡처를 위해 현재 정상 자원을 중지, 파기 또는 삭제하지 않는다. 안전한 상태별 자원이 없으면 소스와 실제 버튼명을 근거로 본문을 작성하고 해당 이미지는 생략한다. + +#### 상세와 프로토콜 + +20. `shared-file-system-detail-01-v2.png` + - 상세 탭과 Storage Service 개요 +21. `shared-file-system-nfs-overview-01.png` + - NFS 연결 정보, 상태, 리스너 및 테이블 +22. `shared-file-system-nfs-export-01.png` + - NFS 내보내기 생성 또는 수정 +23. `shared-file-system-nfs-acl-01.png` + - NFS 접근 허용 목록 +24. `shared-file-system-smb-overview-01.png` + - SMB 연결 정보, 상태 및 공유 +25. `shared-file-system-smb-share-01.png` + - SMB 공유 생성 또는 수정 +26. `shared-file-system-smb-acl-01.png` + - SMB 접근 및 계정 +27. `shared-file-system-smb-ad-01.png` + - Active Directory 가입 또는 상태 +28. `shared-file-system-iscsi-overview-01.png` + - iSCSI 연결 정보, 대상, LUN 및 상태 +29. `shared-file-system-iscsi-target-01.png` + - iSCSI 대상 생성 또는 수정 +30. `shared-file-system-iscsi-acl-01.png` + - Initiator IQN ACL과 CHAP +31. `shared-file-system-nvmeof-overview-01.png` + - NVMe-oF 연결 정보, 상태 및 DH-HMAC-CHAP 제한 +32. `shared-file-system-nvmeof-prepare-01.png` + - Kernel NVMe Target 준비 +33. `shared-file-system-nvmeof-subsystem-01.png` + - 서브시스템 +34. `shared-file-system-nvmeof-namespace-01.png` + - 네임스페이스 +35. `shared-file-system-nvmeof-host-acl-01.png` + - Host NQN ACL +36. `shared-file-system-backing-volume-01.png` + - 백킹 볼륨 연결, 분리 또는 확장 작업 + +#### 네트워크, 메트릭 및 이벤트 + +37. `shared-file-system-network-01-v2.png` + - 네트워크 탭 +38. `shared-file-system-network-add-01-v2.png` + - VM에 네트워크 추가 +39. `shared-file-system-network-ip-change-01-v2.png` + - IP 주소 변경 +40. `shared-file-system-network-secondary-ip-01-v2.png` + - 보조 IP 편집 +41. `shared-file-system-metrics-01-v2.png` + - 메트릭 탭 +42. `shared-file-system-events-01-v2.png` + - 이벤트 탭 + +NIC identity 경고에는 테스트 환경의 일시적인 IP 주소가 포함될 수 있으므로 별도 필수 캡처로 지정하지 않는다. 해당 절은 안정적인 버튼 위치를 캡처할 수 있을 때만 이미지를 사용한다. + +### 10.8 이미지 품질과 민감정보 기준 + +- 모든 새 이미지는 최신 테스트 UI에서 캡처한다. +- 한국어 제목, 탭, 버튼, 필드, 설명과 경고가 완전히 렌더링된 후 캡처한다. +- 깨진 한글, 원문 locale key, 로딩 표시 또는 겹친 툴팁이 있는 이미지는 사용하지 않는다. +- 계정 비밀번호, AD 비밀번호, SMB 로컬 비밀번호, CHAP Secret 및 DH-HMAC-CHAP 키가 입력된 화면은 사용하지 않는다. +- 비밀번호 필드가 필요한 화면은 비어 있는 상태로 캡처한다. +- 테스트 환경의 일시적인 IP, 세션 또는 경고 값은 본문 설명에 불필요하면 화면에서 제외한다. +- 원본 PNG를 새 파일명으로 저장하고 기존 이미지를 직접 덮어쓰지 않는다. + +### 10.9 최종 Markdown 작성 방식 + +최종 본문은 기존 파일에서 사용한 형식을 그대로 따른다. + +- 사용자 절차는 번호 목록으로 작성한다. +- 입력 항목은 `- **필드명:** 설명` 형식으로 작성한다. +- 안내, 상태 조건, 파괴적 작업은 `!!! info`, `!!! check`, `!!! danger`로 구분한다. +- 이미지는 기존의 상대 경로, `.imgCenter`, `.imgBorder` 형식을 사용한다. +- 관련 가이드 링크는 기존의 상대 경로와 HTML `span` 표현 형식을 유지한다. +- 실제 본문에는 계획 문서용 처리 매트릭스 대신 기존 문서처럼 절차와 필드 목록을 사용한다. +- 대상 절만 수정하고 문서 전체를 불필요하게 재포맷하지 않는다. + +### 10.10 3단계 완료 판정 + +다음 항목이 확정되어 3단계를 완료한다. + +1. 기존 16개 `##` 절, 3개 `###` 절, 28개 이미지와 3개 관련 링크의 목록 +2. 기존 절의 유지, 수정, 이동, 교체 또는 삭제 여부 +3. `디스크 오퍼링 변경` 절 삭제와 `액세스 탭`의 네 프로토콜 탭 교체 +4. `매트릭`을 `메트릭`으로 교정하는 방침 +5. 최종 문서 목차 +6. 새 파일명을 사용하는 42개 캡처 후보와 상태별 캡처 안전 조건 +7. 기존 Markdown 형식 유지 기준 + +SharedFS 본문, `mkdocs.yml` 및 기존 이미지 파일은 아직 변경하지 않았다. + +## 11. 4단계 결과: 기존 Markdown 형식을 유지한 본문 초안 + +### 11.1 변경 파일 + +- 본문: + `docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md` +- 작업 계획: + `resources/work-plans/europa-storage-service-sharedfs-doc-plan.md` + +`mkdocs.yml`과 기존 PNG 파일은 변경하지 않았다. + +### 11.2 본문 구조 + +- `#` 제목: 1개 +- `##` 절: 23개 +- `###` 절: 29개 +- 화면 캡처 자리표시자: 42개 +- 계획한 캡처 파일명과 본문 자리표시자의 차이: 없음 + +3단계에서 확정한 최종 목차를 기준으로 다음 내용을 작성했다. + +1. 다중 프로토콜 Storage Service 개요 +2. 네트워크, 디스크 오퍼링, 컴퓨트 오퍼링과 클라이언트 사전 준비 +3. 공유 파일 시스템 목록 +4. 기본 정보와 소유자 설정 +5. 새 데이터 볼륨 생성 +6. 기존 데이터 볼륨과 가져오기 모드 +7. NFS, SMB, iSCSI 및 NVMe-oF 서비스 선택 +8. 프로토콜별 초기 생성 설정 +9. 업데이트, 시작, 중지, 재시작 및 서비스 오퍼링 변경 +10. 파기, 복구 및 삭제 +11. 상세 탭과 네 프로토콜 탭 +12. 프로토콜별 개체, ACL, 리스너, 백킹 볼륨과 세션 관리 +13. 백킹 볼륨 연결, 분리 및 확장 +14. 네트워크, 메트릭 및 이벤트 +15. 현재 제한사항과 용어사전 + +### 11.3 기존 절 변경 결과 + +- 기존 NFS 전용 개요를 NFS, SMB, iSCSI 및 NVMe-oF를 함께 제공할 수 있는 구조로 교체했다. +- 기존 단일 생성 양식을 기본 정보, 볼륨, 서비스 선택과 프로토콜별 설정으로 분리했다. +- 기존 볼륨의 **검사만 수행**, **기존 파일 시스템 마운트**, **새로 포맷** 동작을 추가했다. +- 최신 UI에 없는 **디스크 오퍼링 변경** 절을 제거했다. +- 기존 **공유 파일 시스템 액세스 탭**을 NFS, SMB, iSCSI 및 NVMe-oF 탭으로 교체했다. +- 파기 절 아래에 있던 네트워크 작업을 **공유 파일 시스템 네트워크 탭** 아래로 이동했다. +- **매트릭** 표기를 실제 UI 명칭인 **메트릭**으로 교정했다. +- 복구, 삭제, 백킹 볼륨 관리, 제한사항과 용어사전을 추가했다. + +### 11.4 기존 Markdown 형식 유지 결과 + +- 사용자 절차를 번호 목록으로 작성했다. +- 입력 항목을 `- **필드명:** 설명` 형식으로 작성했다. +- 안내는 `!!! info`를 사용했다. +- 상태와 사전 조건은 `!!! check`를 사용했다. +- 데이터 삭제와 인증정보 경고는 `!!! danger`를 사용했다. +- 기존 상대 링크와 HTML `span` 링크 형식을 유지했다. +- 실제 이미지를 연결하기 전까지 `` 주석을 사용했다. +- 최종 이미지 연결 시 기존의 `.imgCenter .imgBorder` 문법으로 교체하도록 했다. + +### 11.5 프로토콜별 작성 범위 + +#### NFS + +- 내보내기 이름과 내부 백킹 경로 구분 +- NFSv4 전용과 NFSv3·NFSv4 호환 모드 +- 용량 제한, 권한, Root Squash, 동기화와 특권 포트 +- 내보내기와 CIDR ACL 생성, 수정 및 삭제 +- 리스너, 백킹 볼륨과 세션 + +#### SMB + +- 공유 이름, 내부 백킹 경로와 용량 제한 +- 탐색, 게스트 접근과 읽기 전용 설정 +- 로컬 계정과 Active Directory 인증 +- 사용자·그룹 ACL과 권한 +- 도메인 상태, 리스너, 백킹 볼륨과 세션 + +#### iSCSI + +- 대상 IQN, LUN, 크기와 권한 +- Initiator IQN 접근 허용 목록 +- 단방향 CHAP와 상호 CHAP +- 런타임 매핑, 리스너, 백킹 볼륨과 세션 + +#### NVMe-oF + +- Kernel NVMe Target 준비 +- TCP 리스너와 기본 포트 +- 서브시스템과 네임스페이스 +- 모든 호스트 허용 정책과 Host NQN ACL +- 리스너, 백킹 볼륨과 세션 +- SPDK와 DH-HMAC-CHAP 제한 + +### 11.6 안전 및 제한사항 반영 + +- **새로 포맷** 선택 시 기존 데이터가 삭제될 수 있다는 경고를 추가했다. +- 강제 중지, 파기, 즉시 삭제와 백킹 볼륨 작업에 경고를 추가했다. +- SMB 비밀번호, AD 비밀번호와 CHAP Secret을 일회성 런타임 입력으로 설명했다. +- 실제 비밀번호, 계정 비밀정보, 테스트 자원 이름 또는 테스트 환경의 일시적인 IP를 기록하지 않았다. +- SPDK를 지원 기능으로 작성하지 않았다. +- 현재 System VM에서 NVMe-oF DH-HMAC-CHAP을 사용할 수 없다고 명시했다. +- Host NQN ACL은 사용할 수 있는 기능으로 구분했다. +- 최신 UI에서 제거된 디스크 오퍼링 변경 작업을 사용자 절차에서 제외했다. + +### 11.7 이미지 자리표시자 + +3단계에서 계획한 42개 파일명을 모두 본문의 해당 절에 배치했다. + +- 목록과 생성: 11개 +- 수명주기: 8개 +- 상세와 프로토콜: 17개 +- 네트워크, 메트릭 및 이벤트: 6개 + +자리표시자는 Markdown 이미지가 아닌 주석이므로 캡처 전에는 깨진 이미지 링크가 생성되지 않는다. +5단계에서 한국어와 민감정보를 검수한 PNG만 확보하고, 6단계에서 이미지 문법으로 전환한다. + +### 11.8 초안 검증 + +- UTF-8 디코딩: 통과 +- `git diff --check`: 통과 +- 후행 공백: 0개 +- 계획한 캡처 파일명과 자리표시자: 42개 모두 일치 +- 테스트 환경 주소, 테스트 자원 이름 및 실제 인증정보: 포함되지 않음 +- SharedFS 이미지 파일 변경: 없음 +- `mkdocs.yml` 변경: 없음 + +MkDocs strict 빌드와 실제 이미지 링크 검증은 계획대로 8단계에서 수행한다. + +### 11.9 이후 단계 확인 항목 + +- 5단계에서 모든 화면의 한국어가 완전히 렌더링되었는지 확인한다. +- 상태별 작업 화면은 안전한 테스트 자원이 있을 때만 캡처한다. +- 영어 API 도움말이 노출된 영역은 캡처에서 제외하거나 별도 결함으로 보고한다. +- 6단계에서 검수된 이미지만 본문 자리표시자와 교체한다. +- 7단계에서 실제 버튼명, 상태 조건과 프로토콜별 입력 필드를 다시 대조한다. + +### 11.10 4단계 완료 판정 + +다음 항목을 충족하여 4단계를 완료한다. + +1. 3단계에서 확정한 목차의 본문 초안 작성 +2. 기존 Markdown 형식과 문체 유지 +3. NFS, SMB, iSCSI 및 NVMe-oF 운영 절차 작성 +4. 기존 볼륨, 백킹 볼륨, 네트워크와 수명주기 절차 작성 +5. 파괴적 작업, 민감정보와 제한 기능 경고 작성 +6. 42개 화면 캡처 자리표시자 배치 +7. 실제 이미지와 `mkdocs.yml` 미변경 + +## 12. 5단계 결과: 한국어 UI 화면 캡처 및 원본 품질 검수 + +### 12.1 캡처 기준과 변경 범위 + +- 캡처 UI: + `http://10.10.22.10:8080/client/#/sharedfs` +- 캡처 언어: 한국어 +- 캡처 형식: PNG +- 캡처 수: 38개 +- 이미지 크기: + - 일반 화면: 1665×818 + - 모달 화면: 1680×825 +- 이미지 디렉터리: + `docs/assets/images/admin-guide/mold/storage/shared-file-system/` + +기존 이미지 28개는 덮어쓰거나 삭제하지 않았다. 새 파일명으로 캡처를 추가했으며, 6단계 전까지 본문의 자리표시자는 변경하지 않는다. + +### 12.2 확보한 화면 + +| 구분 | 수량 | 주요 화면 | +| --- | ---: | --- | +| 목록과 생성 | 11개 | 목록, 기본 정보, 새·기존 볼륨, 서비스 선택, NFS, SMB, iSCSI, NVMe-oF, 검토 | +| 수명주기 | 5개 | 사용 가능 상태 작업, 업데이트, 중지, 재시작, 파기 | +| 상세와 프로토콜 | 17개 | 상세, NFS, SMB, iSCSI, NVMe-oF, 백킹 볼륨과 주요 관리 모달 | +| 네트워크, 메트릭 및 이벤트 | 5개 | 네트워크, 네트워크 추가, IP 주소 또는 MAC 주소 변경, 메트릭, 이벤트 | +| 합계 | 38개 | | + +### 12.3 안전상 캡처하지 않은 화면 + +다음 4개 후보는 캡처하지 않았다. + +| 파일명 | 제외 이유 | +| --- | --- | +| `shared-file-system-action-stopped-01.png` | 현재 테스트 자원이 `Ready` 상태이며, 중지 상태 작업 메뉴를 만들려면 실제 자원 상태를 변경해야 함 | +| `shared-file-system-service-offering-01-v2.png` | 서비스 오퍼링 변경은 중지 상태에서만 표시되어 실제 자원 상태 변경 없이는 안전하게 캡처할 수 없음 | +| `shared-file-system-action-destroyed-01.png` | 파기 상태 작업 메뉴를 만들려면 실제 자원을 파기해야 함 | +| `shared-file-system-network-secondary-ip-01-v2.png` | 현재 배포된 L2 네트워크 탭의 작업 메뉴에 보조 IP 편집 기능이 표시되지 않음 | + +문서 초안의 해당 자리표시자는 6단계에서 검수된 이미지와 통합할 때 미연결 상태로 유지하고, 7단계에서 실제 배포 UI에 맞게 절차를 정리한다. + +### 12.4 캡처 중 확인한 UI 차이 + +1. NFS 내보내기 생성 모달에서 TCP 445 포트 그룹이 자동 선택되는 화면이 확인되었다. + - 잘못된 포트가 표시된 화면은 저장하지 않았다. + - 기존 NFS 내보내기 편집 모달에서 TCP 2049 포트 그룹이 표시되는 것을 확인하고 해당 화면을 문서용 캡처로 사용했다. +2. 네트워크 탭의 실제 작업명은 **IP 주소 또는 MAC 주소 변경**이다. +3. 현재 L2 네트워크 화면에는 보조 IP 편집 작업이 없다. +4. 파기 모달의 실제 선택 항목은 **제거**와 **강제**이다. + - 7단계에서 초안의 **즉시 삭제** 표현을 실제 UI 명칭과 동작에 맞게 다시 대조한다. +5. NVMe-oF Host ACL 생성 모달에서 현재 커널의 DH-HMAC-CHAP 미지원 경고가 한국어로 정상 표시되었다. + +### 12.5 원본 품질 검수 + +- 38개 파일의 PNG 시그니처와 이미지 디코딩을 확인했다. +- 해상도는 1665×818 또는 1680×825이며, 1600×800 미만 이미지는 없다. +- 목록, 생성, 상세, SMB AD, iSCSI ACL, NVMe-oF Host ACL을 포함한 화면을 원본 크기로 육안 확인했다. +- 한글 자모 깨짐, 네모 문자, 원문 locale key 또는 잘린 핵심 한글이 없다. +- 상세 화면의 초기 로딩 캡처는 폐기하고 데이터가 표시된 뒤 다시 캡처했다. +- 생성 화면의 영문 크기·IOPS 입력 힌트는 비밀정보가 아닌 예시 값을 입력해 가린 뒤 다시 캡처했다. +- 비밀번호, AD 인증정보, CHAP Secret 또는 기타 비밀정보가 입력되거나 표시된 이미지는 없다. +- 브라우저 오류와 경고 로그는 0건이다. + +캡처 API가 최초에 JPEG 바이트를 반환하면서 `.png` 확장자로 저장된 형식 문제를 발견했다. 38개 캡처만 실제 PNG로 다시 인코딩한 뒤 PNG 파일 시그니처와 해상도를 재검증했다. + +### 12.6 테스트 환경 안전 확인 + +- 생성, 업데이트, 중지, 재시작, 파기, ACL 생성, AD 가입 및 볼륨 작업을 제출하지 않았다. +- 모든 모달은 조회와 캡처 후 **취소** 또는 닫기로 종료했다. +- 테스트 자원의 상태, 서비스 설정, 네트워크 및 볼륨은 변경하지 않았다. +- 로그인 비밀번호와 프로토콜 인증정보를 파일, 명령, 문서 또는 이미지에 기록하지 않았다. + +### 12.7 5단계 완료 판정 + +다음 항목을 충족하여 5단계를 완료한다. + +1. 최신 한국어 UI 기준 문서용 캡처 38개 확보 +2. 한글 렌더링과 민감정보 노출 여부 원본 크기 검수 +3. 실제 PNG 형식, 파일 디코딩과 해상도 검증 +4. 로딩 화면과 잘못된 NFS 포트 화면 폐기 +5. 실제 자원 상태 변경이 필요한 3개 화면 안전상 제외 +6. 현재 배포 UI에 없는 보조 IP 편집 화면 제외 +7. 테스트 자원 변경 없이 조회와 모달 취소만 수행 + +## 13. 6단계 결과: 검수 이미지와 본문 통합 + +### 13.1 통합 범위 + +- 본문: + `docs/admin-guide/mold/mold-admin-guide-storage-shared-file-system.md` +- 이미지 디렉터리: + `docs/assets/images/admin-guide/mold/storage/shared-file-system/` +- 연결한 이미지: 38개 +- 유지한 미연결 자리표시자: 4개 +- 삭제하거나 덮어쓴 기존 이미지: 0개 +- `mkdocs.yml` 변경: 없음 + +5단계에서 PNG 형식, 한글 렌더링, 로딩 상태와 민감정보 노출 여부를 검수한 38개 이미지만 본문에 연결했다. + +### 13.2 Markdown 이미지 형식 + +모든 이미지는 기존 문서에서 사용하는 다음 형식으로 연결했다. + +```markdown +![이미지 설명](../../assets/images/admin-guide/mold/storage/shared-file-system/파일명.png){ .imgCenter .imgBorder } +``` + +- 이미지 설명은 각 절의 화면과 작업 목적을 한국어로 작성했다. +- 이미지 경로는 기존 상대 경로를 유지했다. +- `.imgCenter`와 `.imgBorder` 속성을 모든 이미지에 적용했다. +- 같은 이미지가 여러 위치에서 중복 연결되지 않도록 했다. + +### 13.3 절별 통합 결과 + +| 구분 | 연결 수 | 연결 내용 | +| --- | ---: | --- | +| 목록과 생성 | 11개 | 목록, 기본 정보, 새·기존 볼륨, 서비스 선택, 프로토콜별 초기 설정, 검토 | +| 수명주기 | 5개 | 사용 가능 상태 작업 메뉴, 업데이트, 중지, 재시작, 파기 | +| 상세와 프로토콜 | 17개 | 상세, NFS, SMB, iSCSI, NVMe-oF와 백킹 볼륨 관리 | +| 네트워크, 메트릭 및 이벤트 | 5개 | 네트워크, 네트워크 추가, IP 또는 MAC 변경, 메트릭, 이벤트 | +| 합계 | 38개 | | + +본문의 절차 다음에 해당 작업 화면을 배치했으며, 이미지 설명과 파일명이 절의 기능과 일치하는지 대조했다. + +### 13.4 미연결 자리표시자 + +다음 4개는 5단계의 안전 조건과 실제 UI 확인 결과에 따라 이미지 링크로 전환하지 않았다. 존재하지 않는 파일을 참조하지 않도록 HTML 주석 상태를 유지한다. + +| 자리표시자 | 처리 | +| --- | --- | +| `shared-file-system-action-stopped-01.png` | 실제 자원을 중지하지 않고는 확보할 수 없어 미연결 | +| `shared-file-system-service-offering-01-v2.png` | 중지 상태 전용 작업이므로 미연결 | +| `shared-file-system-action-destroyed-01.png` | 실제 자원을 파기하지 않고는 확보할 수 없어 미연결 | +| `shared-file-system-network-secondary-ip-01-v2.png` | 현재 배포 UI에 보조 IP 편집 작업이 없어 미연결 | + +7단계에서 실제 UI와 본문을 최종 대조할 때 관련 절의 유지, 조건부 설명 또는 삭제 여부를 확정한다. + +### 13.5 기존 이미지 처리 + +기존 PNG 28개는 현재 개편 본문에서 더 이상 참조하지 않지만 삭제하지 않았다. 다음 파일을 미사용 이미지 후보로 분류한다. + +#### 목록과 생성 + +- `shared-file-system-dashboard.png` +- `shared-file-system-create-01.png` +- `shared-file-system-create-02.png` + +#### 기존 수명주기 작업 + +- `shared-file-system-update-01.png` +- `shared-file-system-update-02.png` +- `shared-file-system-start-01.png` +- `shared-file-system-start-02.png` +- `shared-file-system-stop-01.png` +- `shared-file-system-stop-02.png` +- `shared-file-system-restart-01.png` +- `shared-file-system-restart-02.png` +- `shared-file-system-disk-offering-change-01.png` +- `shared-file-system-disk-offering-change-02.png` +- `shared-file-system-service-offering-change-01.png` +- `shared-file-system-service-offering-change-02.png` +- `shared-file-system-destroy-01.png` +- `shared-file-system-destroy-02.png` + +#### 기존 상세, 네트워크, 메트릭 및 이벤트 + +- `shared-file-system-detail-info.png` +- `shared-file-system-access-info.png` +- `shared-file-system-network-info.png` +- `shared-file-system-network-info-vm-network-add.png` +- `shared-file-system-network-info-ip-change-01.png` +- `shared-file-system-network-info-ip-change-02.png` +- `shared-file-system-network-info-ip-seconde-update-01.png` +- `shared-file-system-network-info-ip-seconde-update-02.png` +- `shared-file-system-metric-info-01.png` +- `shared-file-system-metric-info-02.png` +- `shared-file-system-event-info.png` + +기존 이미지의 삭제는 사용자의 별도 확인을 받은 뒤에만 수행한다. + +### 13.6 통합 검증 + +- Markdown 이미지 참조: 38개 +- 고유 이미지 참조: 38개 +- 누락된 이미지 파일: 0개 +- 남은 자리표시자: 4개 +- 중복 이미지 참조: 0개 +- 기존 이미지 삭제 또는 덮어쓰기: 0개 +- `git diff --check`: 통과 +- 로컬 `master...upstream/master`: `0 0` + +MkDocs strict 빌드와 실제 렌더링 검수는 계획대로 8단계에서 수행한다. + +### 13.7 6단계 완료 판정 + +다음 항목을 충족하여 6단계를 완료한다. + +1. 검수된 PNG 38개를 기존 문서 경로에 연결 +2. 기존 Markdown 이미지 형식과 상대 경로 유지 +3. 이미지 설명, 절차와 화면 순서 대조 +4. 이미지 참조 38개 모두 존재 확인 +5. 안전상 미확보한 4개 자리표시자를 깨진 링크 없이 주석으로 유지 +6. 기존 PNG 28개를 미사용 후보로 기록하고 삭제하지 않음 +7. `mkdocs.yml`과 관련 없는 파일 미변경 + +## 14. 7단계 결과: 내용·용어·절차·제한사항 최종 대조 + +### 14.1 대조 기준 + +- Cloud 소스 브랜치: `codex/europa-storage-service` +- Cloud 소스 커밋: `1ef2ca37f77ffea29a7a2bff711e8f9b54d198aa` +- 대조한 UI 소스: + - `ui/src/views/storage/CreateSharedFS.vue` + - `ui/src/views/storage/SharedFSTab.vue` + - `ui/src/views/storage/ChangeSharedFSServiceOffering.vue` + - `ui/src/views/network/NicsTab.vue` + - `ui/src/config/section/storage.js` + - `ui/public/locales/ko_KR.json` +- 대조한 서비스 소스: + - `server/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFSServiceImpl.java` + - `api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/DestroySharedFSCmd.java` +- 실제 화면 기준: 5단계에서 확인하고 캡처한 최신 한국어 배포 UI + +Cloud 저장소의 작업 트리에 있던 관련 없는 `docs/marketing/` 파일은 변경하지 않았다. + +### 14.2 수명주기 상태 조건 대조 + +| 작업 | 소스와 UI의 표시 조건 | 문서 처리 | +| --- | --- | --- | +| 시작 | `Stopped` | 조건을 유지하고 미확보 이미지 자리표시자 제거 | +| 중지 | `Ready` | **강제** 선택 항목의 실제 명칭 반영 | +| 재시작 | `Ready`, `Stopped`, `Detached` | 세 상태 조건과 **정리** 선택 항목 반영 | +| 서비스 오퍼링 변경 | `Stopped` | 조건 유지, 오퍼링 필터 조건 추가 | +| 파기 | `Destroyed`, `Expunging`, `Error` 이외 상태에서 표시 | `Ready` 상태는 사전 중지 또는 **강제**가 필요함을 명시 | +| 복구 | `Destroyed` | 조건을 유지하고 미확보 이미지 자리표시자 제거 | +| 삭제 | `Destroyed`, `Expunging`, `Error` | 세 상태 조건과 복구 불가 경고 유지 | + +### 14.3 파기, 복구 및 삭제 절차 교정 + +파기 화면과 API의 실제 인자는 `expunge`와 `forced`이며 한국어 UI에는 각각 **제거**와 **강제**로 표시된다. + +- 초안의 **즉시 삭제** 표현을 실제 UI 명칭인 **제거**로 교정했다. +- **제거**를 선택하지 않으면 `Destroyed` 상태로 전환되어 복구할 수 있음을 명시했다. +- **제거**를 선택하면 바로 삭제되어 복구할 수 없음을 명시했다. +- `Ready` 상태에서 파기하려면 먼저 중지하거나 **강제**를 선택해야 한다는 백엔드 조건을 추가했다. + +### 14.4 생성 필드와 프로토콜 용어 교정 + +한국어 locale과 실제 모달을 기준으로 다음 용어를 교정했다. + +| 초안 표현 | 최종 표현 | +| --- | --- | +| 크기 조정 허용 | 필요 시 데이터 디스크 확장 허용 | +| 가져오기 모드 | 가져오기 방식 | +| NFS 모드 | NFS 프로토콜 모드 | +| NFSv3과 NFSv4 호환 모드 | NFSv3 + NFSv4 | +| 허용된 CIDR | 허용 CIDR | +| 탐색 가능 | 탐색 허용 | +| SMB 인증 모드 | 인증 방식 | +| 초기 SMB ACL 유형·주체 | 초기 SMB 접근 주체 유형·주체 | +| 허용된 Initiator IQN | 허용 초기자 IQN | +| CHAP 활성화 | CHAP 사용 | +| 허용된 Host NQN | 허용 호스트 NQN | +| Kernel NVMe Target | 커널 nvmet (`KERNEL_NVMET`) | + +LUN 크기와 네임스페이스 크기를 비워 두면 백킹 볼륨 크기를 사용한다는 UI 도움말도 반영했다. + +### 14.5 프로토콜 관리 절차 대조 + +- 각 프로토콜의 **연결 정보** 표현을 실제 UI의 **접속 정보**로 교정했다. +- NVMe-oF 작업명을 **NVMe-oF 서브시스템 생성**, **NVMe-oF 네임스페이스 생성**, **NVMe-oF 호스트 ACL 생성**으로 교정했다. +- iSCSI의 Initiator 표기를 한국어 UI와 맞춘 **초기자**로 통일했다. +- SMB, iSCSI 및 NVMe-oF 세션은 작업이 활성화된 경우 **세션 종료**를 실행하도록 표현했다. +- NFS 세션 제어는 최선 노력 방식이므로 클라이언트 마운트 해제를 함께 확인하도록 추가했다. +- NFS 내보내기 생성 시 TCP 2049 수신 포트 그룹을 확인하도록 했다. +- 실제 배포 UI에서 SMB용 TCP 445가 자동 선택되는 경우 작업을 제출하지 않도록 경고를 추가했다. + +### 14.6 백킹 볼륨 절차 대조 + +- 연결 작업명을 **기존 볼륨 연결**로 교정했다. +- 분리 작업명을 **볼륨 연결 해제**로 교정했다. +- 볼륨 연결 해제는 System VM에서 연결만 해제하고 볼륨과 데이터를 삭제하지 않는다는 경고를 추가했다. +- 볼륨 확장 모달에는 파일 시스템 확장 선택 항목이 없음을 확인했다. +- 확장 절차를 **새 볼륨 크기(GiB)**에 현재보다 큰 정수를 입력하는 방식으로 교정했다. +- 축소가 지원되지 않는다는 제한을 유지했다. + +### 14.7 네트워크 절차 대조 + +- 실제 작업명인 **IP 주소 또는 MAC 주소 변경**을 제목과 절차에 반영했다. +- `NicsTab.vue`에서 보조 IP 편집은 NIC 유형이 `L2`가 아닐 때만 표시됨을 확인했다. +- 보조 IP 절은 삭제하지 않고 L2 네트워크에서 사용할 수 없는 조건부 기능으로 정리했다. +- **NIC identity 복구** 표현을 실제 UI의 **NIC 식별 정보 복구**로 교정했다. +- 복구 작업은 실행 중인 VM의 기본 IPv4를 기준으로 데이터베이스 기본 IPv4만 교정하고 가상머신 네트워크와 보조 IP는 변경하지 않음을 명시했다. + +### 14.8 서비스 오퍼링 조건 + +생성과 변경 화면에서 표시되는 가상머신용 컴퓨트 오퍼링은 다음 조건을 모두 만족해야 한다. + +1. 사용자 지정 오퍼링이 아님 +2. HA가 활성화됨 +3. `sharedfsvmmincpucount` 이상의 CPU 제공 +4. `sharedfsvmminramsize` 이상의 메모리 제공 + +생성 절과 서비스 오퍼링 변경 절에 해당 조건을 반영했다. + +### 14.9 미확보 이미지 자리표시자 최종 처리 + +6단계에서 주석으로 유지했던 4개 자리표시자를 모두 제거했다. + +| 자리표시자 | 최종 처리 | +| --- | --- | +| 중지 상태 작업 메뉴 | 소스에서 확인한 `Stopped` 조건부 절차만 유지 | +| 서비스 오퍼링 변경 | 소스에서 확인한 `Stopped` 조건과 오퍼링 필터 절차만 유지 | +| 파기 상태 작업 메뉴 | 소스에서 확인한 `Destroyed` 복구 절차만 유지 | +| 보조 IP 편집 | 비 L2 네트워크 전용 조건부 절차만 유지 | + +문서에는 존재하지 않는 이미지 링크나 캡처 예정 주석이 남아 있지 않다. + +### 14.10 대조 검증 + +- `##` 절: 23개 +- `###` 절: 29개 +- Markdown 이미지 참조: 38개 +- 화면 캡처 자리표시자: 0개 +- 누락된 이미지: 0개 +- 교정 전 용어 잔존: 0개 +- `ko_KR.json` JSON 검증: 통과 +- `git diff --check`: 통과 +- 로컬 `master...upstream/master`: `0 0` + +MkDocs strict 빌드, 링크와 실제 렌더링 검수는 계획대로 8단계에서 수행한다. + +### 14.11 7단계 완료 판정 + +다음 항목을 충족하여 7단계를 완료한다. + +1. 실제 한국어 UI와 Cloud 소스의 버튼, 탭, 필드명 대조 +2. 수명주기 상태 조건과 파기·복구·삭제 동작 교정 +3. NFS, SMB, iSCSI 및 NVMe-oF 용어와 절차 교정 +4. 백킹 볼륨 연결, 분리와 확장 동작 교정 +5. L2 네트워크의 보조 IP 제한과 NIC 식별 정보 복구 범위 명시 +6. SPDK와 DH-HMAC-CHAP 제한 유지 +7. 미확보 이미지 자리표시자 4개 제거 +8. 검수된 이미지 38개와 기존 Markdown 형식 유지 + +## 15. 8단계 결과: MkDocs strict 빌드·링크·한글·보안·변경 범위 검증 + +### 15.1 검증 환경 + +- 검증일: 2026-07-24 +- 작업 브랜치: `codex/europa-storage-service-docs` +- Python: WSL `RockyLinux-9.7`의 Python 3.9.25 +- 문서 도구: 저장소 `requirements.txt`에 명시된 버전 +- 임시 가상 환경: `/tmp/ablestack-docs-stage8.x3JD5E/venv` +- 임시 빌드 출력: `/tmp/ablestack-docs-stage8.x3JD5E/site` + +Windows 환경에 MkDocs 실행 환경이 없으므로 WSL의 임시 가상 환경에 저장소 `requirements.txt`를 설치하여 검증했다. 임시 환경과 빌드 결과는 검증 완료 후 제거하며 저장소에는 포함하지 않는다. + +### 15.2 원문·이미지·공백 검증 + +- Markdown 원문 UTF-8 디코딩 오류: 0개 +- `git diff --check`: 통과 +- Markdown 이미지 참조: 38개 +- 누락된 참조 이미지: 0개 +- PNG 형식 오류: 0개 +- 이미지 대체 텍스트 누락: 0개 +- `.imgCenter`, `.imgBorder` 클래스 누락: 0개 +- 생성된 사이트와 원본 이미지의 SHA-256 불일치: 0개 + +기존 이미지 폴더에는 기존 28개와 신규 38개를 합쳐 66개 PNG가 있다. 기존 28개는 수정하거나 삭제하지 않았고, 이 문서가 참조하는 신규 38개만 별도로 경로, 파일 존재 여부와 해시를 검증했다. + +### 15.3 strict 빌드 결과 + +다음 명령과 동일한 조건으로 임시 출력 디렉터리에 빌드했다. + +```bash +mkdocs build --strict --clean --site-dir /tmp/ablestack-docs-stage8.x3JD5E/site +``` + +- 종료 코드: 0 +- 경고 및 오류: 0개 +- 빌드 시간: 176.53초 +- 생성 파일: 4,304개 + +strict 빌드 로그에 나타난 내비게이션 미등록 문서 목록은 `INFO` 수준이며 경고나 오류가 아니다. + +### 15.4 생성 HTML·링크·앵커 검증 + +- 문서 제목: `공유 파일 시스템` +- `h2`: 23개 +- `h3`: 29개 +- 검사한 내부 링크와 앵커: 95개 +- 깨진 내부 링크: 0개 +- 누락된 앵커: 0개 +- 생성 HTML의 UTF-8 대체 문자: 0개 +- 렌더링된 admonition: 40개 +- 본문 Markdown 표와 렌더링 표: 0개 + +이 문서 본문은 기존 형식에 따라 표를 사용하지 않으므로 표 렌더링 대상은 없다. 다른 문서로 연결되는 링크와 같은 문서의 목차 앵커는 생성된 HTML 파일과 실제 `id`를 기준으로 확인했다. + +### 15.5 브라우저 렌더링 검수 + +MkDocs가 생성한 사이트를 로컬 HTTP 서버로 제공하고 1280×720 뷰포트에서 다음 대표 구간을 직접 확인했다. + +1. 문서 상단, 개요와 Info admonition +2. 공유 파일 시스템 생성, Check admonition과 기본 정보 화면 +3. NFS 탭과 NFS 상세 화면 +4. NVMe-oF 탭과 NVMe-oF 상세 화면 +5. 네트워크 탭과 네트워크 상세 화면 + +검수 결과: + +- `Noto Sans KR` 글꼴 적용 확인 +- 본문과 화면 캡처의 한글 깨짐 없음 +- 공유 파일 시스템 이미지 38개 모두 로드 완료 +- 깨진 이미지, 빈 대체 텍스트와 이미지 클래스 누락 없음 +- 제목과 admonition의 본문 영역 넘침 없음 +- 브라우저 콘솔 경고 및 오류 0개 + +### 15.6 민감정보 검증 + +변경 문서와 계획 문서를 다음 유형의 패턴으로 검사했다. + +- 비밀번호와 `admin / <값>` 형태의 계정 표기 +- AWS, GitHub와 Slack 형식의 키 또는 토큰 +- 개인 키 헤더 +- URL의 Basic Authentication 정보 + +검사 결과 민감정보 패턴은 0개였다. 테스트 환경 로그인 정보는 문서, 계획, 이미지, 검증 스크립트와 명령 기록에 저장하지 않았다. + +### 15.7 변경 범위 검증 + +`git status --short` 기준 변경 항목은 총 40개다. + +- 기존 문서 수정: 1개 +- 신규 검수 이미지: 38개 +- 작업 계획 문서: 1개 +- 계획하지 않은 변경: 0개 + +`mkdocs.yml`, `requirements.txt`, 기존 이미지 28개와 다른 가이드 문서는 변경하지 않았다. stage 또는 commit은 9단계 전까지 수행하지 않는다. + +### 15.8 8단계 완료 판정 + +다음 조건을 모두 충족하여 8단계를 완료한다. + +1. UTF-8, PNG 형식과 Markdown 형식 검증 통과 +2. `git diff --check` 통과 +3. MkDocs strict 빌드 종료 코드 0 +4. 내부 링크와 앵커 95개 검증 통과 +5. 신규 이미지 38개의 경로, 로드와 해시 검증 통과 +6. 실제 브라우저에서 본문, admonition, 이미지와 한글 렌더링 확인 +7. 민감정보 패턴 0개 +8. 변경 범위가 문서 1개, 이미지 38개와 계획 문서 1개로 제한됨 + +## 16. 9단계 결과: 최종 보고 및 Git 전달 + +### 16.1 최종 변경 범위 + +최종 변경 파일은 총 40개다. + +- 공유 파일 시스템 관리 가이드 수정: 1개 +- 최신 한국어 UI 화면 캡처 추가: 38개 +- 단계별 작업 계획과 결과 기록: 1개 + +다른 가이드, MkDocs 설정, 의존성 파일과 기존 이미지 28개는 변경하지 않았다. + +### 16.2 최종 문서 구성 + +기존 Shared File System 문서를 다음 범위의 Storage Service 관리 가이드로 개편했다. + +1. 개요와 사전 준비 사항 +2. 목록 조회와 단계별 생성 +3. 업데이트, 시작, 중지, 재시작, 오퍼링 변경, 파기, 복구와 삭제 +4. NFS, SMB, iSCSI와 NVMe-oF 프로토콜별 관리 +5. 백킹 볼륨 연결, 분리와 확장 +6. 네트워크, 보조 IP와 NIC 식별 정보 복구 +7. 메트릭, 이벤트, 접속 정보, 제한사항과 용어 설명 + +기존 문서 URL, 제목 수준, 순서 목록, admonition과 이미지 클래스 등 저장소의 Markdown 형식을 유지했다. + +### 16.3 이미지 결과 + +- 신규 이미지: 38개 +- 기존 이미지 수정 또는 삭제: 0개 +- 한글 깨짐: 0개 +- 이미지 경로, PNG 형식, 해시와 브라우저 로드 오류: 0개 +- 로그인 정보와 민감정보 노출: 0개 + +화면 캡처는 최신 한국어 UI에서 생성, 수명주기, NFS, SMB, iSCSI, NVMe-oF, 백킹 볼륨, 네트워크, 메트릭과 이벤트의 대표 화면을 확보했다. + +### 16.4 최종 검증 결과 + +- 로컬 `master...upstream/master`: `0 0` +- `git diff --check`: 통과 +- MkDocs strict 빌드: 종료 코드 0 +- MkDocs 경고와 오류: 0개 +- 내부 링크와 앵커: 95개 통과 +- 신규 이미지: 38개 모두 통과 +- UTF-8과 한글 렌더링: 통과 +- 브라우저 콘솔 경고와 오류: 0개 +- 민감정보 패턴: 0개 +- 계획하지 않은 변경: 0개 + +### 16.5 Git 전달 결과 + +- 작업 브랜치: `codex/europa-storage-service-docs` +- 본문 커밋: `08236b1` (`공유 파일 시스템 관리 가이드 개편`) +- push 대상: `origin/codex/europa-storage-service-docs` +- PR 대상: `ablecloud-team/ablestack-docs:master` +- PR: [#205 공유 파일 시스템 관리 가이드 개편](https://github.com/ablecloud-team/ablestack-docs/pull/205) +- PR 상태: Draft +- upstream 직접 push: 수행하지 않음 + +PR 본문은 UTF-8 Markdown 파일을 사용하여 한글 제목, 변경 내용, 변경 이유, 사용자 영향과 검증 결과를 입력했다. + +### 16.6 후속 처리 + +현재 PR은 리뷰와 병합 대기 상태다. PR 병합 후에는 로컬 `master`를 `upstream/master`로 다시 동기화하고 `master...upstream/master`가 `0 0`인지 확인한다. 병합 전에는 로컬 기준 브랜치를 임의로 변경하지 않는다. + +### 16.7 9단계 완료 판정 + +다음 작업을 완료하여 9단계의 전달 절차를 완료한다. + +1. 최종 변경 구조, 이미지와 제한사항 보고 +2. 전체 검증 결과와 변경 파일 범위 보고 +3. 승인된 40개 파일만 stage 및 commit +4. 작업 브랜치를 origin으로 push +5. 한글 제목과 Markdown 본문으로 upstream/master 대상 draft PR 생성 +6. upstream 직접 push 금지 준수 + +PR 리뷰와 병합 이후의 로컬 `master` 재동기화는 후속 처리로 남긴다.