LabHub
배우기 러닝패스 코스

オブジェクトストレージとS3

同じワークロードを二つのストレージに入れて比べる

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 필요, 운영 인력 네 개이고 추천 열이 있어야 한다.

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