SharedIT | 묻고 답하기(AMP)

AI 학습데이터 용 스토리지 구축 어떻게 하시나요 ?

안녕하세요, Shared IT 통해서 늘 배우고 있습니다.

한달전 ? 비슷한 질문이 있긴 했는데, 어떻게 처리하셨는지 궁금하고 고민이 많아 글을 쓰게 되었습니다.

사내 GPU 서버들이 20대 정도 있고, 테스트/학습용으로 사용하고 있습니다.

각각의 서버들에, 사용자들 홈 디렉토리나 Data 파일들이 별개로 업로드가 되어있어

  • 1.다른 서버에 접속하는 경우 Data를 이관 하여야 함.

  • 2.그렇다 보니 중복 Data가 많이 있으며, 불필요한 Disk 공간 낭비 발생

이런 문제점이 있네요, 아래의 방향으로 개선을 하고자 합니다.

  • 1.어느 서버에 접속하더라도, 통일된 홈 디렉토리 제공

  • 2.Disk I/O 영향이 최소화 (학습 시 속도를 위해)

서버 엔지니어 출신으로서는 SAN 스토리지를 구축해서, 동일한 볼륨을 전체서버에 던져주고 관리를 하면 해결이 된다고 생각하였는데,, 늘 예산이 문제네요.

NAS 혹은 별도의 Tool로 문제점과 개선방향을 모두 가져갈 수 있을까요 ?

찾아보니 Ceph 과 같은 분산파일시스템도 있고,, 스토리지 이외에 해결할 수 있는 방법들이 있을것 같아서요.

혹은 구축 사례를 소개 해 주시면, 참고해서 진행할 수 있도록 하겠습니다.

두서없는 글 읽어주셔서 감사합니다 선배님들 :)

6개의 답변이 있습니다.

쿨가이
  0 추천 | 5달 전

최근엔 스토리지나 가상화 관련 기술들이 많이 발전하면서.

스토리지 구성도 매우 다양한 케이스들이 나오고 있습니다.

NAS도 많이 좋아지면서 성능도 괜찮게 나오고 있구요.

이에 직접 알아보고 제안받으시기 보다는 솔루션 상담실을 통해서 내부환경과 예산에 최적화된 제안 받아보시길 추천드립니다

명동쓰레빠
  0 추천 | 5달 전

솔루션상담실을 통해 전문 업체의 조언을 구하시기 바랍니다.


Simon.Park
  0 추천 | 5달 전

크게는 두가지로 고려하실 수 있을 듯 한데요,

우선 각 GPU 서버에 동일한 데이터를 보유하고 싶은 목적에 제일 적합한 것은

NAS 스토리지 도입하여 사용자 홈 디렉토리를 NAS 볼륨으로 설정하면 제일 간단합니다.

여기서 걱정되는 부분은 아무래도 NAS 볼륨은 SAN 이나 DAS 볼륨보다 성능이 다소 

떨어진다는 단점이 있습니다. 물론 고가의 NAS 장비를 도입하면 어느정도 올라오겠지만,

그래도 TCP/IP 방식으로 I/O를 하다 보니 성능의 한계는 있습니다.

그럼 SAN 방식에서 볼륨을 공유면 되겠네? 하시겠는데....

일반적으로 SAN 볼륨을 각 서버에 동시에 보이게 해서 사용을 하게 되면 해당 볼륨에서의

변경되는 데이터에 대해서 상대 서버에서 인지를 못해서 결국에는 Filesystem 이 깨지게 됩니다.

그래서 SAN 볼륨을 공유하기 위해서는 SAN 공유 솔루션을 사용해야 합니다.

근데, 이 솔루션이 저렴하지는 않습니다. 

SAN 공유 솔루션은 볼륨 공유도 해야 하고 성능도 보장이 되어야 하는

방송 시스템 (편집 시스템) 에서 많이 사용 했었습니다. 

귀사의 예산이나 요구 사항에 맞추셔서 선택 하시면 될 듯 하네요~~~ ^^

wansoo
  0 추천 | 5달 전

중복된다는 Data가 어떤 종류의 데이타이냐에 따라 차이가 있을 거라 보여지네요.

이미지, 문서 등의 파일이 중복이라면 중복 파일 검색 제거 툴을 이용해서 걸러내는 방법을 찾아 볼 필요가 있을 것 같고요.

파일 내에 기록된 내용, DB ( 여러 Table 또는 여러 DB 간) 내에 저장된 내용 등이 중복된다면...

일관된 방법으로 데이터를 추출해서, 정형화된 방식으로 다시 기록 보관하고 원본 자료들을 제거 하는 방법을 검토해 봐야 하지 않을까 싶어 보이고요.


여러 서버에 분리 저장되어 있는 데이터들은 관리의 편의성을 고려해서라도 한 곳에 모으는 작업을 하는 것이 좋을 거라 보여지네요.

여러 서버에 분산 저장되어 있는 파일이라면 NAS와 같이 Network에 연결해서 함께 공유할수 있는 저장장치에 모아서 관리하는 것이 좋을 걸로 보여지고요.

기계학습 등의 용도라면 Object Storage를 선호하지 않을까 싶어 보이고...

중복 파일에 대해서는 동영상 등의 큰 용량의 파일이 아니라면... 중복으로 인해 차지하는 용량이 많아야 얼마나 될 까 하는 생각이 드는데...

중복 파일 제거 툴로 무료로 사용가능한 툴들도 많이 있기 때문에 사용해 볼 것을 권장합니다.

NAS 같은 공유 파일 서버에 파일들을 모두 모아 두고서, 중복 파일 검색 툴을 이용해서 파일 내용이 일치하는 파일 검색을 해서 검색된 내용들을 쭉~ 확인해 보고 제거해도 되는 파일들을 삭제해 주면 되겠고요.

경우에 따라서는 같은 내용이 기록된 파일이지만 폴더에 대한 정보, 소프트웨어에 대한 정보, 아이콘 등으로 중복된 파일을 제거함으로 인해 오히려 불편해 지거나 웹문서 등을 여는데 있어 화면에 엑박이 표시되게 되어 문제되는 경우도 있다는 것을 감안해서 중복 검색된 파일 확장자, 파일 사이즈, 등등의 내용들을 참조해서 제거하는 것이 좋을지 그냥 두는 것이 좋을 지를 판단해야 할 것 같아 보이고요.


중복 제거 툴로는...

DoubleKiller  같은 툴도 있고... 찾아 보면 다른 다양한 툴들도 검색해볼 수 있을 거라 생각되고요.


어느 서버에 접속하더라도 통일된 홈 디렉토리 제공이라는 건 NAS를 이용해서 공통된 공유 폴더에 접근한다면 해결될 문제라 생각되고...

Disk I/O는 플래시 디스크, SSD 디스크를 사용하는 저장 장치를 이용하는 것이 좋겠고요.

SAN 스토리지를 사용할 거라면... SAN에 직접 연결된 컴퓨터를 NAS 개념으로 네트워크에 공유해서 사용한다면 SAN을 NAS 처럼 사용할 수 있겠고...

비용과 저장장치의 성능, 비용과 구축의 편의성, 비용과 사용의 편의성 등등이 비례하는 경향이 있기 때문에 비용을 얼마나 투자할지, 투자한 비용에 비례해서 얻을 수 있는 장점이 어떨지를 고려해서 방안을 선정하는 것이 필요할 것 같아 보이네요.

topkslee
  0 추천 | 5달 전

비용측면에서 NAS 스토리지 쪽으로 생각하시는 것으로 보입니다.

NAS로 공유폴더 구성하시면 모든 서버에서 동일한 폴더로 접근되니 

데이터 낭비는 없을 것으로 보입니다.

이전과 달리 NAS도 scale-out file storage로 아주 좋은 성능의 모델들이 있습니다.

성능에 민감하시다면 일반 NAS가 아닌 고성능 NAS 제품으로 고려해보세요.

HPE Qumulo, Dell isilon, Netapp ONTAP, Pure storage FlashArray 등 여러 종류가 있습니다.

물론 Synology, QNAP도 고성능 있습니다.

앵그리파파
  0 추천 | 5달 전

개선된 방향으로 구축하고 싶다면, 

NFS 사용을 고려할 수 있을 것 같은데요, NFS를 사용하면 여러 서버에서 디렉토리를 공유할 수 있고 디스크 I/O 성능을 최적화할 수 있는 방안이 될 수 있을 것 같습니다.

아래 내용은 참고하세요.

  • 1.NFS 설정

  • 중앙집중식 서버에 NFS 서버 설치


  • NFS 내보내기 구성 (공유 디렉토리 지정하려면 '/etc/exports' 파일 편집)


'path/to/home/directory'를 홈 디렉토리의 실제 경로로 변경

  • NFS 서비스 다시 시작


   2. GPU 서버에 NFS 공유 마운트

  • GPU 서버에 NFS 클라이언트 설치


  • NFS 공유 마운트


'nfs_server'를 NFS 서버의 IP주소 또는 호스트 이름으로 변경

선택사항으로, 시스템 부팅 중에 NFS 공유를 자동으로 마운트하도록 '/etc/fstab'을 구성할 수도 있으니 참고하세요.


그리고, 디스크 I/O 성능을 최적화 하기 위해서 

  • 읽기 및 쓰기 속도를 향상하려면 중앙 집중식 스토리지로 SSD 사용 권장

  • 중복성과 향상된 I/O 성능을 위해 NFS 서버에 RAID 구성

  • 최적의 성능을 위해 NFS 설정 조정 (예) rsize, wsize, noatime 등 

  • iostat를 사용하여 시스템 성능 모니터링 및 필요에 따라 구성 조정