Synology NAS에서, 벌륨을 생성하는건 왜 이렇게 오래 걸릴까?

Synology NAS에서, 벌륨을 생성하는건 왜 이렇게 오래 걸릴까?

Summary 시놀로지 NAS에서 볼륨 생성 시, RAID 초기화, LVM 및 SHR 매핑, 파일시스템 메타데이터 구조화, 커널 수준의 입출력 스케줄링 등의 과정에서 발생하는 병목 현상으로 인해 시간이 오래 걸린다. 특히 RAID 5 또는 6에서는 패리티 계산이 필요하고, LVM을 통한 가상화 계층 구축이 복잡성을 더하며, Btrfs 파일시스템의 초기화 과정에서 상당한 자원이 소모된다. 또한, 시스템의 안정성을 위해 입출력 속도가 제한되어 생성 시간이 길어지는 현상이 발생한다.


Image

[주제 1: RAID 레벨에서의 물리적 초기화 및 패리티 계산]

시놀로지 NAS에서 볼륨 생성 시 발생하는 일차적인 병목 현상은 RAID 구성의 무결성을 확보하기 위한 저수준 초기화 작업에서 기인합니다. 특히 RAID 5 또는 RAID 6와 같은 패리티 기반 구조를 채택할 경우, 시스템은 데이터가 없는 상태라 할지라도 전체 스트라이프에 걸쳐 데이터 블록과 패리티 블록이 수학적으로 일치하는지 검증해야 합니다. 리눅스 커널의 mdadm 계층은 이 과정에서 ‘Stripe-by-stripe parity initialization’을 수행하며, 이는 디스크의 모든 섹터를 순차적으로 읽고 XOR 연산을 통해 패리티를 계산한 뒤 다시 기록하는 대규모 순차 입출력(Sequential I/O)을 동반합니다. 결과적으로 초기화 시간은 디스크의 전체 용량과 초당 입출력 횟수(IOPS)에 직접적으로 비례하여 증가하게 됩니다.

[주제 2: LVM 및 SHR 가상화 계층의 매핑 작업]

시놀로지는 유연한 용량 관리를 위해 물리 디스크 위에 바로 파일시스템을 올리지 않고, LVM(Logical Volume Manager)을 통한 가상화 계층을 구축합니다. 시놀로지 하이브리드 RAID(SHR) 환경에서는 이러한 구조적 복잡성이 더욱 심화됩니다. 운영체제는 물리적 드라이브를 물리 볼륨(PV)으로 지정하고 이를 볼륨 그룹(VG)으로 통합한 뒤, 다시 논리 볼륨(LV)으로 분할하는 과정을 거칩니다. 이 단계에서 디스크 전역에 걸쳐 논리적 주소와 물리적 위치를 연결하는 매핑 테이블(Mapping Table)을 생성하며, 해당 정보의 하드웨어적 정합성을 검증하는 과정에서 추가적인 입출력 부하가 발생합니다. 이는 단순한 포맷을 넘어 스토리지 가상화 인프라를 구축하는 필수 공정입니다.

[주제 3: 파일시스템 메타데이터 구조화 및 인덱싱]

논리 볼륨 구성이 완료되면 그 상위에 Btrfs 또는 ext4 파일시스템을 구축하며, 이 과정에서 메타데이터 영역을 할당하고 초기화하는 작업이 수행됩니다. 특히 시놀로지에서 권장하는 Btrfs의 경우, 데이터 오염을 방지하기 위한 ‘Copy-on-Write’ 구조와 체크섬(Checksum) 기능을 지원하므로 초기 트리 구조 생성에 상당한 자원이 투입됩니다. 파일시스템은 데이터의 실제 주소를 담는 인덱스 구조인 메타데이터 트리를 전 구역에 걸쳐 설계하며, 이 과정에서 저널링(Journaling) 영역의 초기화도 병행됩니다. 이러한 추상화 작업은 대용량 볼륨일수록 관리해야 할 인덱스 양이 방대해지기 때문에, 물리적인 기록 성능에 의존하여 장시간 소요될 수밖에 없습니다.

[주제 4: 커널 수준의 입출력 스케줄링 및 대역폭 제한]

시스템은 볼륨 생성 중에도 NAS 본연의 서비스 응답성을 유지하기 위해 커널 수준에서 입출력 우선순위를 제어합니다. 리눅스 커널의 I/O 스케줄러는 RAID 재구축(Resync) 작업을 백그라운드 프로세스로 분류하고, resync_speed_min 및 max 파라미터를 통해 작업 속도를 의도적으로 제한(Throttling)합니다. 이는 볼륨 생성이 시스템 전체의 가용성을 저해하지 않도록 설계된 안정성 확보 장치입니다. 따라서 하드웨어가 낼 수 있는 최대 속도로 작업을 수행하지 않고, 시스템 부하를 고려하여 완만하게 진행함에 따라 체감되는 생성 시간은 더욱 길어지게 됩니다. 결론적으로 볼륨 생성의 지연은 스토리지의 신뢰성과 운영 안정성을 담보하기 위한 커널 수준의 필수적인 동기화 절차로 분석됩니다.

Comments

GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인

댓글 시스템 설정이 필요합니다

GitHub Discussions 기반 댓글 시스템을 활성화하려면:

  1. Giscus 설정 페이지에서 설정 생성
  2. GISCUS_SETUP_GUIDE.md 파일의 안내를 따라 설정 완료
  3. Repository의 Discussions 기능 활성화

Repository 관리자만 설정할 수 있습니다.