LabHub
배우기 러닝패스 코스

Object Storage and S3

Putting the Same Workload on Two Stores and Comparing

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

동일한 코퍼스를 파일시스템, S3 호환 스토리지, SeaweedFS 세 곳에 넣고 개수·시간·지연을 직접 재어, 스토리지 선택을 취향이 아니라 숫자로 하는 법을 익힌다.

왜 중요한가

스토리지 선택은 벤치마크 표를 옮겨 적는 것으로 결정되지 않습니다. 같은 제품이 워크로드에 따라 최선이 되기도 하고 최악이 되기도 하기 때문입니다. 4KiB 파일 2,000개에서 갈리는 차이가 200MiB 파일 하나에서는 사라지고, 그 반대도 있습니다. 이 실습은 그 사실을 스스로 측정해 확인하게 합니다. 특히 4번 스텝에서 파일 2,000개가 볼륨 파일 몇 개에 담기는지를 직접 세어 보면, "소파일에 강하다"는 문장이 구체적인 구조 이야기로 바뀝니다. 마지막 결정표는 나중에 실제 선택을 할 때 그대로 꺼내 쓸 수 있는 형태로 만듭니다.

단계

  1. /root/cmp/corpus/ 아래에 4096바이트 파일 2,000개를 만든다. 이름은 f0000.bin 부터 f1999.bin 이다.
  2. /root/cmp/fs.txtfiles=2000, data_bytes=8192000, disk_kb=<du -sk 결과> 세 줄을 적는다. disk_kb 는 데이터 크기보다 커야 한다.
  3. 버킷 lab-cmp 를 만들어 코퍼스를 통째로 올리고 /root/cmp/s3.txtobjects=2000 seconds=<소수> 를 적는다.
  4. 같은 코퍼스를 SeaweedFS 파일러의 /cmp/ 아래에 넣고 /root/cmp/sw.txtfiles=2000 dat_files=<n> seconds=<소수> 를 적는다. dat_files 는 20 이하여야 한다.
  5. 무작위 100개를 각 저장소에서 읽어 /root/cmp/latency.csvstore,avg_ms 헤더와 fs, s3, seaweedfs 세 행을 적는다.
  6. 200MiB 파일 하나를 세 저장소에 넣고 읽어 /root/cmp/bigfile.csvstore,put_ms,get_ms 헤더와 세 행을 적는다.
  7. /root/cmp/decision.md 에 마크다운 표를 쓴다. 행 제목은 소파일 대량, 대용량 소수, S3 API 필요, 운영 인력 네 개이고 추천 열이 있어야 한다.

참고

비교용 코퍼스 만들기

/root/cmp/corpus/ 아래에 4096바이트 파일 2,000개를 만든다. 이름은 f0000.bin 부터 f1999.bin 이다.

같은 데이터를 세 곳에 넣어야 비교가 됩니다. 크기와 개수를 정확히 맞추세요.

파일시스템에 넣고 메타데이터 비용 재기

/root/cmp/fs.txtfiles=2000, data_bytes=8192000, disk_kb=<du -sk 결과> 세 줄을 적는다. disk_kb 는 데이터 크기보다 커야 한다.

데이터 크기와 실제 사용 블록이 다릅니다. 파일 수도 함께 세어 두세요.

S3 에 넣고 소요 시간 재기

버킷 lab-cmp 를 만들어 코퍼스를 통째로 올리고 /root/cmp/s3.txtobjects=2000 seconds=<소수> 를 적는다.

객체 하나하나가 요청입니다. 개수가 곧 시간이 되는지 확인하세요.

SeaweedFS 에 넣고 볼륨 파일 수 재기

같은 코퍼스를 SeaweedFS 파일러의 /cmp/ 아래에 넣고 /root/cmp/sw.txtfiles=2000 dat_files=<n> seconds=<소수> 를 적는다. dat_files 는 20 이하여야 한다.

앞 실습에서 띄운 데몬을 그대로 씁니다. 볼륨 파일 개수가 핵심 관찰 지점입니다.

무작위 읽기 지연 비교하기

무작위 100개를 각 저장소에서 읽어 /root/cmp/latency.csvstore,avg_ms 헤더와 fs, s3, seaweedfs 세 행을 적는다.

같은 100개를 무작위 순서로 읽습니다. 세 값을 한 파일에 모으세요.

큰 파일 하나로도 같은 비교 하기

200MiB 파일 하나를 세 저장소에 넣고 읽어 /root/cmp/bigfile.csvstore,put_ms,get_ms 헤더와 세 행을 적는다.

소파일에서 갈리던 차이가 큰 파일에서는 어떻게 되는지가 결론의 절반입니다.

선택 기준표 쓰기

/root/cmp/decision.md 에 마크다운 표를 쓴다. 행 제목은 소파일 대량, 대용량 소수, S3 API 필요, 운영 인력 네 개이고 추천 열이 있어야 한다.

워크로드 특성별로 어느 쪽을 고를지 표로 정리합니다. 행 제목이 채점 기준입니다.