mc)mc cp와 mc mirror 차이
최근에 대용량 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