برای راهاندازی یک برنامه، همیشه ساختن ماشین مجازی و اضافهکردن دیسک کافی نیست. بعضی برنامهها برای نگهداری تصاویر، ویدئوها، اسناد و نسخههای پشتیبان، به یک سرویس ذخیرهسازی نیاز دارند؛ سرویسی که بتوانند فایل را به آن بفرستند و بعداً با یک درخواست دریافت کنند. در چنین طراحیای، فضای نگهداری فایلها مستقل از ماشینهای اجرای برنامه مدیریت میشود.
قابلیت Native S3 Object Storage برای پاسخ به همین نیاز به VMware Cloud Foundation اضافه شده است. این قابلیت، امکان ارائه ذخیرهسازی سازگار با S3 را بر بستر vSAN فراهم میکند؛ یعنی برنامه میتواند از داخل ابر خصوصی سازمان، سرویس Object Storage دریافت کند.
البته وضعیت انتشار آن باید روشن باشد: تا زمان نگارش این مقاله در ۱۷ سپتامبر ۲۰۲۶، این قابلیت در VCF 9.1.1 بهصورت پیشنمایش فنی محدود یا Tech Preview ارائه شده است. عرضه عمومی خود VCF 9.1.1 به معنی عرضه عمومی Native S3 نیست. در اعلام رسمی VMware نیز Object Storage با عنوان Tech Preview معرفی شده است. اعلام رسمی انتشار VCF 9.1.1
برای درک این قابلیت، ابتدا باید نوع فضایی را که به برنامه تحویل میدهیم بشناسیم. در زیرساختهای سازمانی، سه مدل رایج وجود دارد:
| مدل ذخیرهسازی | چه چیزی در اختیار مصرفکننده قرار میگیرد؟ | نمونه کاربرد |
|---|---|---|
| Block Storage | دیسک یا حجمی که سیستمعامل روی آن فایلسیستم ایجاد میکند | دیسک سیستمعامل و دادههای ماشین مجازی |
| File Storage | فایل و پوشه در یک فایلسیستم اشتراکی، معمولاً با NFS یا SMB | پوشه مشترک بین کاربران یا سرورها |
| Object Storage | دادههایی با نام مشخص که برنامه از طریق API ذخیره و دریافت میکند | تصاویر، ویدئوها، اسناد و مجموعهدادهها |
تفاوت اصلی این سه مدل، روش دسترسی به داده است. در Object Storage، برنامه درخواست ذخیره یا دریافت یک آبجکت را به سرویس میفرستد. API همان رابطی است که قالب این درخواستها را مشخص میکند. این مدل برای برنامهای مناسب است که چنین روشی را پشتیبانی کند؛ تحویل یک Bucket به نرمافزاری که فقط با مسیر فایل یا دیسک کار میکند، بهتنهایی کافی نیست. مقایسه Block، File و Object Storage در AWS
واژه Object یا «آبجکت» در اینجا مفهوم پیچیدهای ندارد. یک ویدئو یا فایل PDF را در نظر بگیرید. محتوای آن همراه با اطلاعات توصیفی، مانند نوع محتوا، بهصورت یک آبجکت نگهداری میشود. این اطلاعات توصیفی را Metadata مینامند. آبجکتها در محفظهای منطقی به نام Bucket قرار میگیرند و هرکدام در آن Bucket با نامی به نام Key شناخته میشوند. تعریف Object، Bucket و Key در مستندات Amazon S3
مثلاً برای یک سامانه آموزشی، میتوان چنین ساختاری در نظر گرفت:
| مورد | مقدار نمونه | معنی |
|---|---|---|
| Bucket | course-videos | محل نگهداری ویدئوهای دورهها |
| Key | vcf/session-01.mp4 | نام آبجکت مربوط به ویدئوی جلسه اول |
| Metadata | نوع محتوا: video/mp4 | اطلاعات توصیفی همراه ویدئو |
وقتی برنامه به این ویدئو نیاز دارد، نام Bucket و Key را در درخواست خود مشخص میکند. سرویس ذخیرهسازی مسئول پیدا کردن و برگرداندن داده است. برنامه برای این کار نیازی به دانستن شماره دیسک یا نام سروری که داده روی آن قرار گرفته ندارد.
نام S3 از سرویس Amazon Simple Storage Service آمازون آمده است. وقتی محصول دیگری «S3-compatible» معرفی میشود، منظور سازگاری با رابطهای برنامهنویسی S3 است. در Native S3، برنامه به Endpoint سرویس سازمان متصل میشود؛ Endpoint همان آدرس شبکهای سرویس است. استفاده از این رابط، بهخودیخود داده را به AWS منتقل نمیکند.
برای مثال، تیم زیرساخت یک آدرس سرویس، نام Bucket و اطلاعات احراز هویت در اختیار برنامه میگذارد. برنامه درخواستهای خود را به همان آدرس میفرستد. میزان سازگاری نیز به APIها و قابلیتهایی بستگی دارد که محصول پیادهسازی کرده و برنامه به آنها نیاز دارد؛ عبارت S3-compatible تضمین نمیکند تمام امکانات Amazon S3 در محصول دیگری وجود داشته باشد. VMware این قابلیت را بهعنوان سرویس بومی سازگار با S3 روی vSAN معرفی کرده است. معرفی فنی Native S3 توسط VMware
برای کسانی که با vSAN کار کردهاند، واژه Object آشناست. vSAN پیش از این هم معماری Object-based داشت و دادههای ماشین مجازی را با استفاده از آبجکتهای داخلی و Storage Policyها مدیریت میکرد. اما این موضوع با ارائه Bucket به برنامه تفاوت دارد.
فرض کنید یک ماشین مجازی روی vSAN دارید و داخل سیستمعامل آن یک فایل ویدئویی ذخیره کردهاید. برنامه همچنان آن ویدئو را بهصورت یک فایل روی دیسک ماشین میبیند. Object-based بودن لایه زیرین، برای آن ویدئو یک آدرس S3 یا یک Bucket ایجاد نمیکند. در Native S3، برنامه مستقیماً از سرویس Object Storage استفاده میکند. بنابراین قابلیت تازه، یک روش جدید برای مصرف فضای ذخیرهسازی به زیرساخت اضافه میکند. معرفی VMware نیز فاصله میان خدمات قبلی vSAN و ارائه بومی S3 را توضیح میدهد. توضیح VMware درباره اضافهشدن سرویس Object Storage
در معماری این سرویس، مسئولیتها میان چند جزء تقسیم شدهاند:
| جزء | نقش اصلی |
|---|---|
| vSAN | تأمین بستر ذخیرهسازی دادهها |
| vSphere Supervisor | استقرار و مدیریت اجزای سرویس |
| VCF Automation | فراهمکردن محیط ارائه سرویس به سازمانها، مدیریت سهمیه و دسترسی |
Native بودن به این معناست که قابلیت S3 در خود مجموعه توسعه یافته و برای ارائه آن، نصب محصول S3 شخص ثالث لازم نیست. سرویس همچنان اجزای نرمافزاری، تنظیمات شبکه و فرایند استقرار دارد. VMware همچنین استفاده مستقیم از Supervisor از طریق API و CLI را مطرح کرده است؛ بنابراین VCF Automation تنها مسیر استفاده نیست. معماری و روشهای استقرار در معرفی رسمی VMware
در مسیر مبتنی بر VCF Automation، مدیر زیرساخت ابتدا سرویس را نصب و منابع لازم را آماده میکند. سپس برای سازمان مصرفکننده یک Object Store ساخته میشود. Object Store نمونه سرویس ذخیرهسازی است و Bucketها درون آن ایجاد میشوند؛ این دو اصطلاح به یک چیز اشاره نمیکنند.
بررسی عملی Cormac Hogan از متخصصین حوزه VMware، نشان میدهد که ساخت Object Store شامل انتخاب Region، شبکه VPC و ظرفیت است. Region محدوده منابع ارائه سرویس و VPC شبکه خصوصی مجازی آن است. تنظیم DNS و گواهی HTTPS نیز بخشی از آمادهسازی دسترسی است. در پیشنمایش بررسیشده، VPC باید از قبل ساخته شده باشد و برای فعالکردن HTTPS، گواهی Wildcard و کلید خصوصی دریافت میشود. این روند، تصویر کلی استقرار است؛ جزئیات نسخه نهایی میتواند تغییر کند. بررسی عملی راهاندازی Native Object Storage
مدیریت دسترسی هم فقط به داشتن آدرس سرویس محدود نمیشود. در بررسی تازهتر Hogan، نقش سازمانی کاربر، عضویت او در پروژه و مجوزهای Object Storage در دسترسی مؤثرند. حتی داشتن نقش Project Admin، بدون مجوزهای لازم در سطح سازمان، برای کار با سرویس کافی نیست. پس از آمادهشدن این مجوزها، میتوان دسترسی به عملیات و Bucketها را با Policy کنترل کرد. از نظر عملی، تیم زیرساخت میتواند سرویس را آماده کند و مدیریت دسترسی مصرفکنندگان را در چارچوب نقشهای مشخص به سازمان و پروژه بسپارد. بررسی نقشها و کنترل دسترسی، منتشرشده در ۱۶ سپتامبر ۲۰۲۶
کاربرد این مدل را میتوان در همان سامانه آموزشی دید. در یک طراحی پیشنهادی، ماشینهای مجازی مسئول اجرای برنامهاند و ویدئوها در Bucket نگهداری میشوند. اگر برای پاسخگویی به کاربران، تعداد ماشینهای برنامه بیشتر شود، نمونههای جدید هم با دسترسی مناسب به همان سرویس متصل میشوند. در این طراحی، نیازی نیست ویدئوهای دوره را روی دیسک تکتک ماشینهای برنامه کپی کنیم.
این جداسازی، مسئولیتها را روشنتر میکند: منابع اجرای برنامه و فضای نگهداری محتوای آن جداگانه مدیریت میشوند. بااینحال، افزایش تعداد ماشینها به معنی افزایش خودکار توان سرویس ذخیرهسازی نیست. ظرفیت، پهنای باند شبکه و حجم درخواستها همچنان باید در طراحی محاسبه شوند.
برای پروژههای هوش مصنوعی نیز Object Storage میتواند محل نگهداری مجموعهداده و خروجی پردازش باشد. دانکن اپینگ یکی دیگر از متخصصین به نام VMware ، علاوه بر کاربردهای AI، استفاده از این قابلیت بهعنوان مقصد بکاپ VKS و DSM را مطرح کرده است. اینها سناریوهای مصرف سرویساند و سازگاری هر ابزار باید برای نسخه و امکانات موردنیاز خودش بررسی شود. کاربردهای مطرحشده برای Native S3
در موضوع بکاپ، یک تفاوت فنی اهمیت زیادی دارد: ذخیرهکردن بکاپ در یک Bucket، بهتنهایی آن را تغییرناپذیر نمیکند. برای مثال، Object Lock در Amazon S3 قابلیت مشخصی برای محافظت از نسخه آبجکت در برابر حذف یا بازنویسی، مطابق تنظیمات نگهداری است. از سازگاری یک محصول با S3 نمیتوان وجود همین قابلیت را نتیجه گرفت. منابع معرفی Native S3 که در این مقاله بررسی شدهاند، برای تأیید پشتیبانی آن از Object Lock کافی نیستند. مستند فنی Amazon S3 Object Lock
برای ارزیابی پیشنمایش فعلی، پیشنیازهای اعلامشده VCF 9.1.1، vSAN ESA و Supervisor هستند. دسترسی به بسته و راهنما نیز از طریق درخواست به نماینده VMware و انتخاب شرکتکنندگان انجام میشود. نصب نسخه 9.1.1 بهتنهایی گزینه Native S3 را برای همه کاربران فعال نمیکند. پیشنیازها و شرایط شرکت در Tech Preview
ارزش این قابلیت برای تیم VMware، امکان پاسخگویی به نیاز دیگری از برنامههاست: ارائه یک سرویس ذخیرهسازی که با API مصرف میشود. در طراحی ابر خصوصی، انتخاب فضای ذخیرهسازی باید از روش کار برنامه شروع شود. دیسک ماشین مجازی، فضای فایل مشترک و Bucket هرکدام کاربرد خود را دارند؛ Native S3 قرار است گزینه سوم را هم بهشکل بومی در اختیار مصرفکنندگان VCF قرار دهد.