প্রকল্প সম্পর্কে

JuiceFS হলো Apache License 2.0-এর অধীনে প্রকাশিত একটি উচ্চ-ক্ষমতাসম্পন্ন POSIX ফাইল সিস্টেম, যা ক্লাউড-নেটিভ পরিবেশের জন্য ডিজাইন করা হয়েছে। JuiceFS-এর মাধ্যমে লেখা ফাইলগুলো অবজেক্ট স্টোরেজে (যেমন Amazon S3 বা অন্যান্য S3-সামঞ্জস্যপূর্ণ সেবা) সংরক্ষিত থাকে, আর ফাইলের নাম, আকার, অনুমতি, টাইমস্ট্যাম্প এবং ডিরেক্টরি কাঠামোর মতো মেটাডেটা আলাদা মেটাডেটা ইঞ্জিনে রাখা হয়। সমর্থিত মেটাডেটা ইঞ্জিনের মধ্যে রয়েছে Redis, MySQL, SQLite এবং TiKV, তাই বিভিন্ন পরিস্থিতি ও প্রয়োজন অনুযায়ী ডিপ্লয়মেন্ট টিউন করা যায়। প্রকল্পটি তিনটি প্রধান অংশ বর্ণনা করে: JuiceFS ক্লায়েন্ট, যা অবজেক্ট স্টোরেজ ও মেটাডেটা ইঞ্জিন সমন্বয় করে এবং ফাইল সিস্টেম ইন্টারফেস বাস্তবায়ন করে; ডেটা স্টোরেজ স্তর, যা লোকাল ডিস্ক, পাবলিক বা প্রাইভেট ক্লাউড অবজেক্ট স্টোরেজ, বা HDFS ব্যবহার করতে পারে; এবং মেটাডেটা ইঞ্জিন। ফাইলগুলো চাঙ্কে বিভক্ত হয় (ডিফল্ট ঊর্ধ্বসীমা 64 MiB), চাঙ্কগুলো স্লাইসে, এবং স্লাইসগুলো ব্লকে (ডিফল্ট 4 MiB) যা অবজেক্ট স্টোরেজে সংরক্ষিত হয়। এই বিন্যাসের কারণে উৎস ফাইলগুলো অবজেক্ট স্টোরেজ ব্রাউজারে সরাসরি দেখা যায় না; বাকেটে সংখ্যাযুক্ত ডিরেক্টরি ও ফাইলসহ একটি chunks ডিরেক্টরি থাকে। README-তে উল্লেখিত প্রধান সক্ষমতাগুলোর মধ্যে রয়েছে সম্পূর্ণ POSIX সামঞ্জস্য, Hadoop 2.x ও 3.x-এর সাথে সামঞ্জস্যপূর্ণ Hadoop Java SDK, S3-সামঞ্জস্যপূর্ণ গেটওয়ে, Kubernetes CSI ড্রাইভার, হাজার হাজার ক্লায়েন্ট থেকে শেয়ার্ড রিড/রাইট অ্যাক্সেস, শক্তিশালী কনসিস্টেন্সি যেখানে নিশ্চিত পরিবর্তনগুলো সব মাউন্ট করা ক্লায়েন্টের কাছে তাৎক্ষণিকভাবে দৃশ্যমান, কম লেটেন্সি ও স্কেলযোগ্য থ্রুপুট, ট্রানজিট ও অ্যাট রেস্ট এনক্রিপশন, গ্লোবাল ফাইল লক (BSD flock ও POSIX fcntl), এবং LZ4 বা Zstandard দিয়ে ডেটা কম্প্রেশন। README-তে আরও উল্লেখ আছে close-to-open কনসিস্টেন্সি, অ্যাটমিক rename ও মেটাডেটা অপারেশন, unlink-এর পর খোলা ফাইল অ্যাক্সেসযোগ্য থাকা, mmap, punch hole সমর্থনসহ fallocate, এবং extended attributes। এতে বলা হয়েছে JuiceFS সর্বশেষ pjdfstest-এ 8813টি সামঞ্জস্য পরীক্ষার সবগুলোই পাস করেছে। শুরু করতে একটি সমর্থিত মেটাডেটা ইঞ্জিন, সমর্থিত অবজেক্ট স্টোরেজ এবং JuiceFS ক্লায়েন্ট প্রয়োজন। ডকুমেন্টেশনে রয়েছে কুইক স্টার্ট গাইড, কমান্ড রেফারেন্স, কনটেইনার (Docker ও Podman), Kubernetes, Hadoop Java SDK, Redis সেরা অনুশীলন, অবজেক্ট স্টোরেজ সেটআপ, ক্যাশে, ফল্ট ডায়াগনোসিস, FUSE মাউন্ট অপশন, Windows ব্যবহার এবং S3 গেটওয়ে। বেঞ্চমার্ক প্রদান করা হয় JuiceFS সাবকমান্ডের মাধ্যমে, সাথে fio সিকোয়েন্সিয়াল রিড/রাইট এবং EFS ও S3FS-এর বিরুদ্ধে mdtest মেটাডেটা তুলনা; README এগুলোকে অনুকূল ফলাফল হিসেবে উপস্থাপন করে এবং বিস্তারিতের লিংক দেয়। সমর্থিত অবজেক্ট স্টোরেজের মধ্যে রয়েছে Amazon S3 ও S3-সামঞ্জস্যপূর্ণ সেবা, Google Cloud Storage, Azure Blob Storage, Alibaba Cloud OSS, Tencent Cloud COS, Qiniu Kodo, QingStor, Ceph RGW, MinIO, লোকাল ডিস্ক এবং Redis, ইত্যাদি। README বলছে JuiceFS প্রোডাকশন-রেডি এবং হাজার হাজার মেশিনে ব্যবহৃত, সাথে একটি adopters তালিকা ও ইন্টিগ্রেশন ডকুমেন্টেশন রয়েছে। স্টোরেজ ফরম্যাটকে স্থিতিশীল এবং ভবিষ্যতের রিলিজে সমর্থিত হিসেবে বর্ণনা করা হয়েছে। রোডম্যাপে উল্লেখ আছে গেটওয়ে অপ্টিমাইজেশন, রিজিউমেবল সিঙ্ক, রিড-অ্যাহেড অপ্টিমাইজেশন, বড় পরিসরের পরিস্থিতি অপ্টিমাইজেশন এবং স্ন্যাপশট। JuiceFS ডিফল্টভাবে বেনামী ব্যবহার ডেটা সংগ্রহ করে, শুধু ভার্সন নম্বরের মতো মূল মেট্রিক্স রিপোর্ট করে, এবং --no-usage-report অপশন দিয়ে এটি নিষ্ক্রিয় করা যায়। ডিজাইনটি Google File System, HDFS এবং MooseFS দ্বারা অনুপ্রাণিত। কমিউনিটি সহায়তা GitHub Discussions ও Discord-এর মাধ্যমে পাওয়া যায়, এবং ইস্যুগুলো GitHub-এ ট্র্যাক করা হয়।