'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

기타/K8S

mc)mc cp와 mc mirror 차이

MightyTedKim 2023. 1. 9. 22:06
728x90
반응형

최근에 대용량 object stroage 파일 수십만개를 복사할 일이 생겼는데

그 때 mc cp와 mc mirror를 들여다 봤어요

 

+ aws cli도 좋지만,  mc(minio client)는 설치가 필요없이

압축만 풀면되는 agent 파일이어서 좋아요.

(서버에 영향을 최소한으로 줄 수 있어서)

 

예상 독자

- mc(minio client)가 궁금한 분

- mc cp와 mc mirror의 차이가 궁금한 분

 

목차

1. mc cp는 뭐지

2. mc mirror는 뭐지

3. 두개의 차이점은 뭐지

4. 무엇을 적용했는지


1. mc cp는 뭐지

 

aws cli의 cp와 동일한 친구에요

단순히 복사하는 명령어로,

속도가 빠르고 단순하다는 장점이 있어요

 

하지만 boto3보다 안정적이라는거지,

수만개의 object를 이동시키다보면 중간에 에러가 나서

다 옮겨지지 않는 경우가 생겨요


2. mc mirror는 뭐지

mirror는 거울이라는 뜻처럼,

똑같이 옮기는 역할을 해요.

(kafka mirror maker와 비슷해요)

 

--newer-than 1d2hh3mm4ss

--older-than 1d2hh3mm4ss

과 같은 파라미터를 줘서 더 세세하게 source에서 target으로 옮길 수 있어요

 

--overwrite 설정값은 계쏙 보고 있다가

source에 변화가 있을 때 target에 적용을 해주고요

 

--remove를 해주면, source에서 삭제된걸 target에 적용을 해주기도 한답니


3. 무슨 차이지?

mc mirror는 --recursive를  넣을 필요가 없어요.

A에서 B로 이동시키는 개념이 아니라, 싱크를 맞춘다는 개념이니까요

 

--overwrite 또는 --watch를 사용하면 변경 사항을 적용할 수 있어요

--overwrite는 싱크 확인 후 작업을 1회 진행한다면

--watch는 계속 지켜보는거지 역할을 할 뿐 아니라 삭제도 진행해줘요

4. 무엇을 적용했는지

저는 대용량 파일을 매일 백업하는 용도로 복사용 툴이 필요했어요

python으로 옮기면 가끔 에러가 나고,

cli로 하고 싶은데 매번 aws cli를 세팅할 수가 없엇어요

 

그래서 익숙한 mc를 사용하기로 결정했고,

그 중에서 cp보다 mirror --overwrite를 사용하기로 결정했습니다

mirror --overwrite는 이미 작업이 완료된거면 짧은 시간에 체크만하고

작업은 안해서 일주일치씩 돌려도 문제가 없을 것 같아요.

 

혹시나 과거 작업하다가 알 수 없는 에러로 작업이 돌지 않아도

mc mirror --overwrite를 하면 빠진 부분을 체크해주기 때문에 안심이 됩니다

 

airflow에 올릴 때는 aws cli를 사용할 수도 잇겠지만,

mc도 분명 강력한 툴인것 같아요

 

참고자료

https://min.io/docs/minio/linux/reference/minio-mc/mc-mirror.html#mc.mirror.-overwrite

https://stackoverflow.com/questions/59558166/whats-different-between-mc-cp-recursive-and-mc-mirror-overwrite

728x90
반응형