مدیریت خودکار سامانه های ذخیره سازی SAB در کلاسترهای Openstack
درایور HPDS یک ماژول نرمافزاری است که برای ارتباط سیستمهای ذخیرهسازی SAB با پلتفرم ابری OpenStack طراحی شده است. این درایور به سرویس Cinder که برای ذخیرهسازی در OpenStack استفاده میشود، متصل شده است و امکان مدیریت حجمهای ذخیرهسازی (volumes) را در محیطهای ابری فراهم میکند.
عملکرد اصلی درایور این درایور با استفاده از REST API، عملیات پایهای ذخیرهسازی را روی سامانهی SAB انجام میدهد. فرآیند کار به این صورت است که درایور ابتدا با سامانهی ذخیرهسازی ارتباط برقرار کرده و سپس قابلیتهای ذخیرهسازی مانند پورتها، استخرهای ذخیرهسازی (pools) و LUNها (Logical Units Number) را شناسایی میکند. این درایور توانایی انجام عملیات زیر را مستقیما از طریق واسطهای کاربری و خط فرمان Openstack دارا میباشد:
• ایجاد حجم (Create Volume): درایور یک حجم جدید با اندازه مشخص ایجاد میکند و آن را به استخرها اختصاص میدهد. این عملیات شامل تخصیص LUN و تنظیم نام حجم است.
• حذف حجم (Delete Volume): حجم را از ذخیرهسازی حذف میکند، اما اگر حجم بخشی از یک جفت replication باشد، ابتدا جفت را جدا میکند.
• گسترش حجم (Extend Volume): اندازه حجم را افزایش میدهد تا فضای واقعی مصرفی بهینه شود.
• اتصال حجم (Attach Volume): حجم را به یک ماشینمجازی متصل میکند. این عملیات شامل ایجاد اتصال منطقی LUN mapping، شناسایی پورتهای هدف، ایجاد یا استفاده از گروه هاست iSCSI target، و تخصیص LUN است. اگر اتصال از قبل وجود نداشته باشد، گروه هاست جدید ایجاد میشود و IQN هاست به آن اضافه میگردد. پشتیبانی از multi-pathing برای افزایش دسترسی و عملکرد وجود دارد.
• قطع دسترسی به حجم (Detach Volume): اتصال حجم به هاست را قطع میکند. این شامل unmap LUN، حذف اتصال از گروه هاست، و در صورت خالی بودن گروه هاست اگر گزینه hpds_group_delete فعال باشد، حذف آن است.
درایور از حالتهای synchronous و asynchronous برای عملیات کپی استفاده میکند و زمان انتظار برای تکمیل عملیات مانند LUN mapping را با تایماوتهای قابل تنظیم مدیریت مینماید. همچنین، از قفلگذاری (locking) برای جلوگیری از تداخل عملیات همزمان استفاده میکند، مانند جلوگیری از حذف گروه هاست در حین اتصال.
پیکربندی درایور از طریق فایل cinder.conf انجام میشود، جایی که پارامترهایی مانند hpds_storage_id، hpds_pools، hpds_target_ports و گزینههای REST مانند تایماوتها تنظیم میشوند.
