Cloud Storage FUSE

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ‘œ์ค€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์˜ ๊ฐ์ฒด๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก Cloud Storage ๋ฒ„ํ‚ท์„ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งˆ์šดํŠธํ•˜๊ณ  ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” FUSE ์–ด๋Œ‘ํ„ฐ์ธ Cloud Storage FUSE์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—๋Š” ํ•ญ์ƒ Cloud Storage FUSE์˜ ์ตœ์‹  ๋ฒ„์ „์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub์—์„œ Cloud Storage FUSE ์ถœ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐœ์š”

Cloud Storage FUSE๋Š” Google์—์„œ ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์ œํ’ˆ์ž…๋‹ˆ๋‹ค. Cloud Storage FUSE๋Š” FUSE ๋ฐ Cloud Storage API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์„ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋กœ์ปฌ ๋งˆ์šดํŠธ๋œ ํด๋”๋กœ ํˆฌ๋ช…ํ•˜๊ฒŒ ๋…ธ์ถœ์‹œํ‚ต๋‹ˆ๋‹ค.

Cloud Storage FUSE๋Š” ๋‹ค๋ฅธ Google Cloud ์„œ๋น„์Šค์™€ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Cloud Storage FUSE CSI ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Google Kubernetes Engine(GKE) API๋ฅผ ํ†ตํ•ด ๋ฒ„ํ‚ท์„ ๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Kubernetes ํฌ๋“œ ๋‚ด์—์„œ Cloud Storage๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ†ตํ•ฉ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ†ตํ•ฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Cloud Storage FUSE ์ž‘๋™ ๋ฐฉ์‹

Cloud Storage FUSE๋Š” ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€ ์ด๋ฆ„์„ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ž‘๋™ํ•˜๋ฉฐ, ๊ฐ์ฒด ์ด๋ฆ„์˜ ์Šฌ๋ž˜์‹œ ๋ฌธ์ž(/)๋ฅผ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ๊ณตํ†ต ์ ‘๋‘์‚ฌ๊ฐ€ ๋™์ผํ•œ ๊ฐ์ฒด๋Š” ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ๋กœ ์ทจ๊ธ‰๋˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋งˆ์šดํŠธ๋œ ๋ฒ„ํ‚ท๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋…ผ๋ฆฌ์  ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ํด๋”๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Storage FUSE๋Š” Google Kubernetes Engine, Compute Engine VM, ์˜จํ”„๋ ˆ๋ฏธ์Šค ์‹œ์Šคํ…œ์„ ๋น„๋กฏํ•ด Cloud Storage์— ์—ฐ๊ฒฐํ•˜์—ฌ ์–ด๋””์„œ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Storage FUSE ์‚ฌ์šฉ ์‚ฌ๋ก€

Cloud Storage FUSE๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์‹œ๋งจํ‹ฑ์Šค๊ฐ€ ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•œ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ ํŠน์„ฑ์„ ๊ฐ€์ง„ Cloud Storage ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Cloud Storage FUSE๋Š” ๋ฐ์ดํ„ฐ, ๋ชจ๋ธ, ์ฒดํฌํฌ์ธํŠธ, ๋กœ๊ทธ๋ฅผ Cloud Storage์— ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋จธ์‹ ๋Ÿฌ๋‹(ML) ํ”„๋กœ์ ํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จ๋œ ์ƒ์„ธ ์„ค๋ช…์€ ML ์›Œํฌ๋กœ๋“œ์šฉ Cloud Storage FUSE๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋จธ์‹ ๋Ÿฌ๋‹์šฉ Cloud Storage FUSE

Cloud Storage FUSE๋Š” ๋จธ์‹ ๋Ÿฌ๋‹(ML) ํ•™์Šต ๋ฐ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ Cloud Storage์˜ ๊ฐ์ฒด๋กœ ์ €์žฅํ•˜๊ณ  ์•ก์„ธ์Šคํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Cloud Storage FUSE๋Š” ML ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Cloud Storage ๋ฒ„ํ‚ท์„ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ‘œ์ค€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์Šต ๋ฐ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Cloud Storage๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ML ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋Š” ๋น„์šฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ•™์Šต๋ถ€ํ„ฐ ์ถ”๋ก ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Cloud Storage์˜ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ๋†’์€ ํ™•์žฅ์„ฑ, ์„ฑ๋Šฅ, ๋น„์šฉ ํšจ์œจ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ML ์›Œํฌ๋กœ๋“œ๋ฅผ ๋Œ€๊ทœ๋ชจ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Cloud Storage์˜ ๋ฐ์ดํ„ฐ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํ•™์Šต ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์— ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Storage FUSE์—์„œ ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ, ์šด์˜์ฒด์ œ, ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ”„๋ ˆ์ž„์›Œํฌ, ์šด์˜์ฒด์ œ, ์•„ํ‚คํ…์ฒ˜

Cloud Storage FUSE๋Š” ๋‹ค์Œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ฒ€์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • TensorFlow V2.x

  • TensorFlow V1.x

  • PyTorch V2.x

  • PyTorch V1.x

  • JAX 0.4.x

Cloud Storage FUSE๋Š” ๋‹ค์Œ ์šด์˜์ฒด์ œ ๋ฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Rocky Linux 8.9 ์ด์ƒ

  • Ubuntu 18.04 ์ด์ƒ

  • Debian 10 ์ด์ƒ

  • CentOS 7.9 ์ด์ƒ

  • RHEL 7.9 ์ด์ƒ

  • SLES 15 ์ด์ƒ

  • x86_64

  • ARM64

Cloud Storage FUSE์™€ Google Cloud ์ œํ’ˆ ํ†ตํ•ฉ

Cloud Storage FUSE๋Š” ๋‹ค์Œ Google Cloud ์ œํ’ˆ๊ณผ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์ œํ’ˆ Cloud Storage FUSE ํ†ตํ•ฉ ๋ฐฉ๋ฒ•
AI ํ•˜์ดํผ์ปดํ“จํ„ฐ

Cloud Storage FUSE๊ฐ€ ํฌํ•จ๋œ Cloud Storage๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์„œ๋น„์Šค๋ณด๋‹ค ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ AI ๋ฐ ML ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๊ถŒ์žฅ๋˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Google Kubernetes Engine(GKE)

Cloud Storage FUSE CSI ๋“œ๋ผ์ด๋ฒ„๋Š” Cloud Storage FUSE ๋ฐ Kubernetes API์˜ ํ†ตํ•ฉ์„ ๊ด€๋ฆฌํ•˜์—ฌ Cloud Storage ๋ฒ„ํ‚ท์„ ๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Cloud Storage FUSE CSI ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์„ Google Kubernetes Engine ๋…ธ๋“œ์— ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Vertex AI ํ•™์Šต

Vertex AI์—์„œ ์ปค์Šคํ…€ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ๋•Œ Cloud Storage ๋ฒ„ํ‚ท์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์šดํŠธ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•™์Šต ์ฝ”๋“œ ์ค€๋น„๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Vertex AI Workbench

Vertex AI Workbench ์ธ์Šคํ„ด์Šค์—๋Š” JupyterLab ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์—์„œ ๋ฒ„ํ‚ท์„ ํƒ์ƒ‰ํ•˜๊ณ  Cloud Storage์— ์žˆ๋Š” ํ˜ธํ™˜ ํŒŒ์ผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” Cloud Storage ํ†ตํ•ฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Storage ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด Vertex AI Workbench ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  Cloud Storage ๋ฒ„ํ‚ท ๋ฐ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ตํ•ฉ์„ ์„ค์ •ํ•˜๋ ค๋ฉด JupyterLab์—์„œ Cloud Storage ๋ฒ„ํ‚ท ๋ฐ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ Vertex AI Workbench ์•ˆ๋‚ด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Deep Learning VM Image

Cloud Storage FUSE์—๋Š” Deep Learning VM Image๊ฐ€ ์‚ฌ์ „ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Deep Learning Containers

Deep Learning Containers์šฉ Cloud Storage ๋ฒ„ํ‚ท์„ ๋งˆ์šดํŠธํ•˜๋ ค๋ฉด Cloud Storage FUSE CSI ๋“œ๋ผ์ด๋ฒ„(๊ถŒ์žฅ)๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Cloud Storage FUSE๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Batch

Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๊ด„ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•  ๋•Œ Cloud Storage ๋ฒ„ํ‚ท์„ ์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ์œผ๋กœ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์ •์˜์—์„œ ๋ฒ„ํ‚ท์„ ์ง€์ •ํ•˜๋ฉด ์ž‘์—…์ด ์‹คํ–‰๋  ๋•Œ ๋ฒ„ํ‚ท์ด ์ž‘์—…์˜ VM์— ์ž๋™์œผ๋กœ ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค.

Cloud Run

Cloud Run์„ ์‚ฌ์šฉํ•˜๋ฉด Cloud Storage ๋ฒ„ํ‚ท์„ ๋ณผ๋ฅจ์œผ๋กœ ๋งˆ์šดํŠธํ•˜๊ณ  ๋ฒ„ํ‚ท ์ฝ˜ํ…์ธ ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ํŒŒ์ผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด Cloud Storage ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Cloud Composer

ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๋ฉด Cloud Composer๊ฐ€ ์›Œํฌํ”Œ๋กœ ๋ฐ Cloud Storage ๋ฒ„ํ‚ท์˜ ํŠน์ • ํด๋”์— ์žˆ๋Š” ํ•ด๋‹น ์ข…์† ํ•ญ๋ชฉ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Cloud Composer๋Š” Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์˜ ํด๋”๋ฅผ Cloud Composer ํ™˜๊ฒฝ์˜ Airflow ๊ตฌ์„ฑ์š”์†Œ์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

Cluster Toolkit

Cluster Toolkit์„ ์‚ฌ์šฉํ•˜๋ฉด Cloud Storage ๋ฒ„ํ‚ท์„ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒญ์‚ฌ์ง„ YAML ํŒŒ์ผ์—์„œ ๋ฒ„ํ‚ท์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐฐํฌ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ฒ„ํ‚ท์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค.

Dataflow

Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Storage ๋ฒ„ํ‚ท์„ ์ž‘์—…์ž ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ง์ ‘ ๋งˆ์šดํŠธํ•˜๋ฉด Dataflow ๊ธฐ๋ฐ˜ Apache Beam ํŒŒ์ดํ”„๋ผ์ธ ์ฝ”๋“œ๊ฐ€ ํ‘œ์ค€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Storage์˜ ํŒŒ์ผ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ํŒŒ์ผ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํฌํ•จ๋œ AI/ML ์ž‘์—…์— Dataflow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ Cloud Storage์™€ ํ†ตํ•ฉ๋˜๋Š” Google Cloud ์ œํ’ˆ ๋ชฉ๋ก์€ Google Cloud ์„œ๋น„์Šค ๋ฐ ๋„๊ตฌ์™€์˜ ํ†ตํ•ฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์บ์‹ฑ

Cloud Storage FUSE๋Š” ์„ฑ๋Šฅ์„ ๋†’์ด๊ณ  ๋น„์šฉ์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์˜ ์บ์‹ฑ(ํŒŒ์ผ ์บ์‹ฑ, ํ†ต๊ณ„ ์บ์‹ฑ, ์œ ํ˜• ์บ์‹ฑ, ๋ชฉ๋ก ์บ์‹ฑ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์บ์‹œ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์บ์‹ฑ ๊ฐœ์š”๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋””๋ ‰ํ„ฐ๋ฆฌ ์‹œ๋งจํ‹ฑ์Šค

Cloud Storage๋Š” ๋‹จ์ผ ๊ตฌ์กฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๋ฒ„ํ‚ท๊ณผ ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Storage FUSE๋Š” ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์—์„œ ํด๋”๋ผ๊ณ ๋„ ํ•˜๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”Œ๋žซ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๋ฒ„ํ‚ท์—์„œ๋Š” ์•”์‹œ์ ์œผ๋กœ ์ •์˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•”์‹œ์ ์œผ๋กœ ์ •์˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ ํด๋” ๋ฐ ๊ด€๋ฆฌ ํด๋”๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด my-directory/my-object.txt๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋œ my-bucket์ด๋ผ๋Š” ๋ฒ„ํ‚ท์„ ๋งˆ์šดํŠธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ my-directory/๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ ํด๋”์ž…๋‹ˆ๋‹ค. ๋ฒ„ํ‚ท ๋งˆ์šดํŠธ ์ง€์ ์—์„œ ls๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Storage FUSE๊ฐ€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ my-bucket/my-directory/๋‚˜ ๊ทธ ์•ˆ์— ์žˆ๋Š” ๊ฐ์ฒด my-object.txt์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Cloud Storage FUSE๊ฐ€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ ํด๋”์™€ ๊ทธ ์•ˆ์˜ ๊ฐ์ฒด๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”Œ๋žซ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฒ„ํ‚ท์„ ๋งˆ์šดํŠธํ•  ๋•Œ gcsfuse mount ๋ช…๋ น์–ด์˜ ์ผ๋ถ€๋กœ --implicit-dirs CLI ์˜ต์…˜ ๋˜๋Š” implicit-dirs ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.

ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๋Ÿฌํ•œ ๋ฒ„ํ‚ท์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์•”์‹œ์ ์œผ๋กœ ์ •์˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํ•จ๊ป˜ ๋ฒ„ํ‚ท์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ์‹œ๋งจํ‹ฑ์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub ๋ฌธ์„œ์˜ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud Storage FUSE ์žฌ์‹œ๋„ ์ „๋žต

๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Storage FUSE์—์„œ Cloud Storage๋กœ์˜ ์‹คํŒจํ•œ ์š”์ฒญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ’์ด 30s(30์ดˆ)์ธ ์ง€์ •๋œ ์ตœ๋Œ€ ๋ฐฑ์˜คํ”„ ๊ธฐ๊ฐ„๊นŒ์ง€ ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„๋กœ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์˜คํ”„ ๊ธฐ๊ฐ„์ด ์ง€์ •๋œ ์ตœ๋Œ€ ๊ธฐ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋ฉด ์ง€์ •๋œ ์ตœ๋Œ€ ๊ธฐ๊ฐ„ ๋™์•ˆ ์žฌ์‹œ๋„๊ฐ€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. --max-retry-sleep CLI ์˜ต์…˜ ๋˜๋Š” gcs-retries:max-retry-sleep ํ•„๋“œ๋ฅผ gcsfuse mount ํ˜ธ์ถœ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์˜คํ”„ ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ฒด๋œ GET ๋˜๋Š” READ ์š”์ฒญ์˜ ์žฌ์‹œ๋„ ์ „๋žต

Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GET ๋˜๋Š” READ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ œํ•œ ์‹œ๊ฐ„์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์ œํ•œ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋ฉด Cloud Storage FUSE๋Š” ์š”์ฒญ์„ ์ทจ์†Œํ•˜๊ณ  ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‹œ๊ฐ„์€ ๋™์ ์ด๋ฉฐ, ์ตœ์†Œ 1.5์ดˆ๋กœ ๊ณผ๊ฑฐ์— ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œ๋œ GET ๋˜๋Š” READ ์š”์ฒญ์˜ 99๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ€์žฅ ๋А๋ฆฐ ์š”์ฒญ์˜ 1%, ์ฆ‰ 99๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜ ์ด์ „ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋Š” ์š”์ฒญ๋งŒ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

์ •์ฒด๋œ ์—…๋กœ๋“œ์— ๋Œ€ํ•œ ์žฌ์‹œ๋„ ์ „๋žต

๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์“ฐ๊ธฐ๋Š” ์ฒญํฌ ๋‹จ์œ„๋กœ ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ผฌ๋ฆฌ ์“ฐ๊ธฐ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ฒญํฌ ์ˆ˜์ค€ ์“ฐ๊ธฐ ์ž‘์—…์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋ฉด Cloud Storage FUSE๋Š” 10์ดˆ ํ›„์— ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋‹จ๋œ ๊ฐ ์ฒญํฌ์— ๋Œ€ํ•ด ์ตœ๋Œ€ 4ํšŒ์˜ ์žฌ์‹œ๋„ ์ž‘์—…์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Cloud Storage ์ž‘์—…๊ณผ ์—ฐ๊ฒฐ๋œ Cloud Storage FUSE ์ž‘์—…

๋˜ํ•œ Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” Cloud Storage FUSE ์ž‘์—…๊ณผ ์—ฐ๊ด€๋œ Cloud Storage ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ Cloud Storage FUSE ๋ช…๋ น์–ด ๋ฐ ์—ฐ๊ด€๋œ Cloud Storage JSON API ์ž‘์—…์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. --log-severity CLI ์˜ต์…˜ ๋˜๋Š” logging:severity ํ•„๋“œ๋ฅผ gcsfuse ๋ช…๋ น์–ด์—์„œ TRACE๋กœ ์„ค์ •ํ•˜์—ฌ Cloud Storage FUSE ์ž‘์—…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด JSON API ์ž‘์—…
gcsfuse --log-severity=TRACE example-bucket mp Objects.list(์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ํ™•์ธ)
cd mp ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ
ls mp Objects.list("")
mkdir subdir

Objects.get("subdir")

Objects.get("subdir/")

Objects.insert("subdir/")

cp ~/local.txt subdir/

Objects.get("subdir/local.txt")

Objects.get("subdir/local.txt/")

Objects.insert("subdir/local.txt"), ๋นˆ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ

Objects.insert("subdir/local.txt"), ์“ฐ๊ธฐ ์™„๋ฃŒ ํ›„ ๋‹ซ์„ ๋•Œ

rm -rf subdir

Objects.list("subdir")

Objects.list("subdir/")

Objects.delete("subdir/local.txt")

Objects.list("subdir/")

Objects.delete("subdir/")

์ธก์ •ํ•ญ๋ชฉ

Cloud Storage๋Š” Cloud Storage FUSE ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์‹ฌ์ธต์ ์ธ ์ธก์ •ํ•ญ๋ชฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Cloud Storage FUSE ์ธก์ •ํ•ญ๋ชฉ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Storage FUSE ์ธก์ •ํ•ญ๋ชฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Cloud Storage FUSE ๊ฐ€๊ฒฉ ์ฑ…์ •

Cloud Storage FUSE๋Š” ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, Cloud Storage์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋„คํŠธ์›Œํฌ I/O, ์Šคํ† ๋ฆฌ์ง€, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—๋Š” ๋‹ค๋ฅธ Cloud Storage ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์ด ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, Cloud Storage FUSE์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ ์ž‘์—…์€ Cloud Storage ์ „์†ก๊ณผ ์ž‘์—…์— ๋งคํ•‘๋˜๋ฉฐ ๊ทธ์— ๋”ฐ๋ผ ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ Cloud Storage FUSE ์ž‘์—…๊ณผ Cloud Storage ์ž‘์—…์— ๋Œ€ํ•œ ๋งคํ•‘ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž‘์—… ๋งคํ•‘์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ์ •์ด ์—†๋˜ ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋˜์ง€ ์•Š๋„๋ก Cloud Storage FUSE ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ Cloud Storage ์š”๊ธˆ์ด ์–ผ๋งˆ์ธ์ง€ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ, ๋กœ๊ทธ๊ฐ€ ๋™์‹œ์— ์ˆ˜๋ฐฑ ๋˜๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ ์‹œ์Šคํ…œ์—์„œ ๊ณต๊ฒฉ์ ์œผ๋กœ ๋ฐ€๋ ค๋“ค๋ฉด ์š”๊ธˆ์ด ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€, ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰, ์ž‘์—…๊ณผ ๊ฐ™์€ ์š”๊ธˆ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Storage ๊ฐ€๊ฒฉ ์ฑ…์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

Cloud Storage FUSE์— ํŒŒ์ผ ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋ฐฑ์—”๋“œ์˜ NFS ๋˜๋Š” CIFS ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ Cloud Storage FUSE๋Š” POSIX ๊ทœ์ •์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Google Cloud์˜ POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ ์ œํ’ˆ์€ Filestore๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋‹ค๋ฅธ ์ œํ•œ์‚ฌํ•ญ ๋ฐ ์‹œ๋งจํ‹ฑ์Šค์— ์œ ์˜ํ•˜์„ธ์š”. Cloud Storage FUSE๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ์˜ ์ฐจ์ด ๋ฐ ์ œํ•œ์‚ฌํ•ญ

๋‹ค์Œ ๋ชฉ๋ก์—์„œ๋Š” Cloud Storage FUSE์˜ ์ œํ•œ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ: Cloud Storage์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ์‹œ Cloud Storage FUSE๋Š” ๊ฐ์ฒด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, mtime ๋ฐ symlink ๋Œ€์ƒ์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ๋•Œ๋Š” ๊ฐ์ฒด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Google Cloud CLI, JSON API ๋˜๋Š” Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋™์‹œ ์‹คํ–‰: ๋™์ผํ•œ Cloud Storage ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•˜๋„๋ก ๋งˆ์šดํŠธ ์ง€์ ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ตฌ์„ฑํ•˜๊ณ  ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋งˆ์šดํŠธ๊ฐ€ ๋™์ผํ•œ Cloud Storage ๊ฐ์ฒด์— ๋™์‹œ์— ์“ฐ๋ ค๊ณ  ํ•˜๋ฉด ์“ฐ๊ธฐ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ณ  ๊ฐ์ฒด์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ”Œ๋Ÿฌ์‹œํ•œ ์ฒซ ๋ฒˆ์งธ ๋งˆ์šดํŠธ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ˆ˜์ •๋œ ํ›„ ๋กœ์ปฌ ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ๋งˆ์šดํŠธ๋Š” ์ „์ œ ์กฐ๊ฑด ํ™•์ธ์œผ๋กœ ์ธํ•ด ์ˆ˜์ •์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋ ค๊ณ  ํ•  ๋•Œ syscall.ESTALE ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์“ฐ์ด๋„๋ก ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ์†Œ์Šค๊ฐ€ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ์—ฌ๋Ÿฌ ๋ช…์˜ ๋ฆฌ๋”๊ฐ€ ๋ฒ„ํ‚ท ๋‚ด์˜ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ ๋ช…์˜ ์ž‘์„ฑ์ž๊ฐ€ ๋™์ผํ•œ ๋ฒ„ํ‚ท์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋™์‹œ์— ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ Cloud Storage ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋™์‹œ ์“ฐ๊ธฐ๋Š” ๋™์ผํ•œ ๋งˆ์šดํŠธ์—์„œ ์ง€์›๋˜๋ฉฐ ๋‚ด์žฅ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ:: Cloud Storage FUSE๋Š” ํ•˜๋“œ ๋งํฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ์ž ๊ธˆ ๋ฐ ํŒŒ์ผ ํŒจ์น˜: Cloud Storage FUSE๋Š” ํŒŒ์ผ ์ž ๊ธˆ ๋˜๋Š” ํŒŒ์ผ ํŒจ์น˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์€ ํŒŒ์ผ ์ž ๊ธˆ ๋ฐ ํŒจ์น˜์— ์˜์กดํ•˜๋ฏ€๋กœ Cloud Storage FUSE ๋งˆ์šดํŠธ ์ง€์ ์— ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ ์ €์žฅ์†Œ๋ฅผ ์ €์žฅํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Cloud Storage FUSE๋ฅผ ํŒŒ์ผ ๋Œ€์ฒด๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ์‹œ๋งจํ‹ฑ์Šค: Cloud Storage FUSE์˜ ์‹œ๋งจํ‹ฑ์Šค๋Š” ๊ธฐ์กด ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์‹œ๋งจํ‹ฑ์Šค์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋งˆ์ง€๋ง‰ ์•ก์„ธ์Šค ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ณ„์ธต์  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ž‘์—…์€ ์›์ž์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Cloud Storage FUSE ์‹œ๋งจํ‹ฑ์Šค์™€ ๊ธฐ์กด ํŒŒ์ผ ์‹œ์Šคํ…œ ์‹œ๋งจํ‹ฑ์Šค์˜ ์ฐจ์ด์  ๋ชฉ๋ก์€ Cloud Storage FUSE GitHub ๋ฌธ์„œ์˜ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Cloud Storage FUSE๊ฐ€ Cloud Storage์—์„œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ ์‹œ๋งจํ‹ฑ์Šค๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • ํŒŒ์ผ ํŒจ์น˜(๋˜๋Š” ๊ทธ๋Œ€๋กœ ๋ฎ์–ด์“ฐ๊ธฐ) ์›Œํฌ๋กœ๋“œ: Cloud Storage FUSE๋Š” ํ•œ ๋ฒˆ์— Cloud Storage์— ์ „์ฒด ๊ฐ์ฒด๋งŒ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒจ์น˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์— ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด Cloud Storage FUSE์—์„œ ์ „์ฒด ํŒŒ์ผ์„ ๋‹ค์‹œ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์˜ ์œ ์ผํ•œ ์˜ˆ์™ธ๋Š” 2MB ์ด์ƒ์˜ ํŒŒ์ผ ๋์— ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Cloud Storage FUSE๋Š” ์ถ”๊ฐ€๋œ ์ฝ˜ํ…์ธ ๋งŒ ๋‹ค์‹œ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค: ํŒŒ์ผ ์Šน์ธ์€ Cloud Storage ๊ถŒํ•œ์œผ๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. POSIX ์Šคํƒ€์ผ์˜ ์•ก์„ธ์Šค ์ œ์–ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ: Cloud Storage FUSE๋Š” ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ์ง€์—ฐ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ๊น๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ž‘์€ ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ์ „์†กํ•˜๋ฉด ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์šฉ์„ฑ: Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Storage์— ์•ก์„ธ์Šคํ•  ๋•Œ ์ผ์‹œ์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํŒจํ•œ ์ž‘์—…์„ ์žฌ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ: Cloud Storage FUSE๋Š” ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์˜ ์‚ฌ์šฉ์„ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฒ„ํ‚ท์— Cloud Storage FUSE๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํŠธ๋žœ์Šค์ฝ”๋”ฉ:

    ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— content-encoding: gzip์ด ์žˆ๋Š” ๊ฐ์ฒด: Cloud Storage FUSE ๋งˆ์šดํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋Š” ์••์ถ• ํ•ด์ œ ํŠธ๋žœ์Šค์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๊ฐ์ฒด๋Š” ๋ฒ„ํ‚ท์— ์ €์žฅ๋œ ๋ฐฉ์‹๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์••์ถ•๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด --gzip-local ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ gcloud storage cp ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œ๋œ 1,000๋ฐ”์ดํŠธ์˜ ํŒŒ์ผ์€ Cloud Storage ๊ฐ์ฒด๋กœ์„œ 60๋ฐ”์ดํŠธ(์‹ค์ œ ์••์ถ• ํฌ๊ธฐ๋Š” ์ฝ˜ํ…์ธ  ๋ฐ gcloud CLI์—์„œ ์‚ฌ์šฉํ•˜๋Š” gzip ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. gcsfuse๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท์ด ๋งˆ์šดํŠธ๋˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ์„ ๋งˆ์šดํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‚˜์—ดํ•˜๊ฑฐ๋‚˜ ์ฝ๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 60๋ฐ”์ดํŠธ๋กœ ๋ฐ˜ํ™˜๋˜๋ฉฐ ์ฝ˜ํ…์ธ ๋Š” ์›๋ž˜ 1,000๋ฐ”์ดํŠธ ์ฝ˜ํ…์ธ ์˜ ์••์ถ•๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

    ์ด๋Š” ์••์ถ• ํ•ด์ œ ํŠธ๋žœ์Šค์ฝ”๋”ฉ์„ ๊ฑฐ์น˜๋Š” gcloud storage cp gs://bucket/path /local/path๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์šด๋กœ๋“œ์™€ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, gcloud ๋ช…๋ น์–ด์—์„œ๋Š” ๋‹ค์šด๋กœ๋“œ ์ค‘์— ์ฝ˜ํ…์ธ ๊ฐ€ ์ž๋™์œผ๋กœ ์••์ถ• ํ•ด์ œ๋˜์–ด ์••์ถ•๋˜์ง€ ์•Š์€ ์›๋ณธ ์ฝ˜ํ…์ธ ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  • ๋ณด๊ด€ ์ •์ฑ…: Cloud Storage FUSE๋Š” ๋ณด๊ด€ ์ •์ฑ…์ด ์žˆ๋Š” ๋ฒ„ํ‚ท์— ์“ฐ๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด๊ด€ ์ •์ฑ…์ด ์ ์šฉ๋œ ๋ฒ„ํ‚ท์— ์“ฐ๊ธฐ ์ž‘์—…์„ ์‹œ๋„ํ•˜๋ฉด ์“ฐ๊ธฐ ์ž‘์—…์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

    Cloud Storage FUSE๋Š” ๋ณด๊ด€ ์ •์ฑ…์ด ์ ์šฉ๋œ ๋ฒ„ํ‚ท์—์„œ ๊ฐ์ฒด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฒ„ํ‚ท์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋™์•ˆ -o RO ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ Read-Only๋กœ ๋งˆ์šดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€: ์ƒˆ๋กœ์šด ๋˜๋Š” ์ˆ˜์ •๋œ ๊ฐ์ฒด๋Š” ๋‹ซํžˆ๊ฑฐ๋‚˜ ๋™๊ธฐํ™”๋  ๋•Œ๊นŒ์ง€ ๋กœ์ปฌ ์ž„์‹œ ํŒŒ์ผ์— ์˜จ์ „ํžˆ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ž‘์—… ์‹œ ํŠนํžˆ Compute Engine ์ธ์Šคํ„ด์Šค๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์˜ ์ž„์‹œ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•˜๊ธฐ์— ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰์ด ์ถฉ๋ถ„ํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Storage FUSE GitHub ๋ฌธ์„œ์˜ ๋ฆฌ๋“œ๋ฏธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ํŒŒ์ผ ํ•ธ๋“ค ์ œํ•œ: Linux ์ปค๋„์˜ ๊ธฐ๋ณธ ์—ด๋ฆฐ ํŒŒ์ผ ํ•ธ๋“ค ์ œํ•œ์€ 1,024๊ฐœ์ž…๋‹ˆ๋‹ค. Cloud Storage FUSE๋ฅผ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์‹œ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด ํ•œ๋„๊ฐ€ ์ดˆ๊ณผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋‹จ์ผ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๋™์‹œ ์—ฐ๊ฒฐ ์ˆ˜๊ฐ€ ํ•œ๋„ ๋ฏธ๋งŒ์ด ๋˜๋„๋ก ํ•˜๊ณ  ํ•œ๋„๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Cloud Storage FUSE ๋งˆ์šดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์Šคํ† ๋ฆฌ์ง€(NAS)๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœ(FTP) ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ด ์ž‘์—…์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Cloud Storage FUSE ๋งˆ์šดํŠธ์—์„œ Cloud Run์— ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์„œ๋น™ํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ ๋™์‹œ ์š”์ฒญ ์ˆ˜๊ฐ€ 1,000๊ฐœ ๋ฏธ๋งŒ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • rsync ์ œํ•œ์‚ฌํ•ญ: Cloud Storage FUSE์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง€์—ฐ ์‹œ๊ฐ„์€ ํ•œ ๋ฒˆ์— ํŒŒ์ผ์„ ํ•˜๋‚˜๋งŒ ์ฝ๊ณ  ์“ฐ๋Š” rsync์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋ฒ„ํ‚ท์œผ๋กœ ๋˜๋Š” ๋ฒ„ํ‚ท์—์„œ ๋ณ‘๋ ฌ๋กœ ์ „์†กํ•˜๋ ค๋ฉด gcloud storage rsync๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ rsync ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ๋ชฉ๋ก ์ž‘์—… ์ œํ•œ์‚ฌํ•ญ: ๋งˆ์šดํŠธ๋œ ๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ๋‚˜์—ดํ•˜๋ฉด(์˜ˆ: ls ์‹คํ–‰) Cloud Storage FUSE๊ฐ€ Cloud Storage์—์„œ ๊ฐ์ฒด: ๋‚˜์—ด API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด API๋Š” ๊ฒฐ๊ณผ๋ฅผ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ ์„œ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฒ„ํ‚ท์˜ ๊ฐ์ฒด ์ˆ˜์— ๋”ฐ๋ผ Cloud Storage FUSE๊ฐ€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋ชฉ๋ก ์ž‘์—…์ด ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ณ  ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๋ ค์ง„ ๋ฌธ์ œ

Cloud Storage FUSE์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ ๋ชฉ๋ก์€ GitHub๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ง€์› ๋ฐ›๊ธฐ

Google Cloud์˜ ๊ณต์‹ ์ง€์› ์ฑ„๋„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์›์„ ๋ฐ›๊ณ , ์ผ๋ฐ˜์ ์ธ ์งˆ๋ฌธ์„ ์ œ์ถœํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์—ฌ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ Cloud Storage FUSE GitHub ๋ฌธ์„œ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„