الحاق چند کارت شبکه به هم در شبکه خصوصی معماری Real Application Cluster
اوراکل برای ارتباطات و انتقال اطلاعات در دو بخش Cache Fusion و Clusterware از شبکه Interconnect استفاده میکند. درصورتیکه تعداد نودهای کلاستر برابر عدد دو باشد؛ میتوان از کابلهای Crossover استفاده کرد. بدین ترتیب بهوسیله یک کابل دو سرور مستقیماً و بدون وجود دستگاههای شبکه نظیر Switch و یا Router به یکدیگر متصل میشوند. درصورتیکه تعداد نودهای کلاستر بیش از دو باشد، لازم است تا از دستگاههای شبکهای نظیر Switch برای برقراری یک ارتباط خصوصی استفاده شود.
شبکه در کلاستر اوراکل اعم از عمومی یا خصوصی میتواند Single Point of Failure واقع شود. بنابراین لازم است بهمنظور جلوگیری از کاهش دسترسیپذیری کلاستر، اقدام به افزونگی شبکه کرد. برای افزونگی شبکه دو یا چند کارت شبکه برای هر یک از شبکههای عمومی و خصوصی تنظیم میشوند. این تنظیمات شامل فعال شدن دو کارت شبکه در یک شبکه و توزیع بار بین همه کارتهای شبکه یک ماشین میشود. روش مرسوم NIC Bonding و یا NIC Pairing میباشد.
NIC Bonding عبارت است از روش اتصال چند کارت شبکه حقیقی به یک کارت شبکه مجازی. از این کارت شبکه مجازی برای برقراری ارتباط سرور پایگاهداده استفاده میشود. با استفاده از تنظیمات NIC Bonding میتوان امکان استفاده همزمان از کلیه کارتهای شبکه حقیقی را ایجاد نمود. بدین ترتیب یک توزیع بار شبکه رخ میدهد که در صورت استفاده از یک کارت شبکه حقیقی، امکانپذیر نخواهد بود. مزیت دیگر استفاده از این روش افزایش دسترسیپذیری است. درصورتیکه یکی از کارتهای شبکه حقیقی دچار ازکارافتادگی شود، سایر کارتهای شبکه به تبادل ترافیک پرداخته و عملکرد سرور دچار اختلالی نخواهد شد.
پیادهسازی
در محیط Oracle Real Application Cluster حداقل به دو شبکه مجزا نیاز است. یکی از شبکهها برای ارتباطات داخلی نودهای کلاستر مورداستفاده قرار میگیرد؛ و شبکه دیگر برای ارتباطات کاربران، برنامههای کاربردی و تبادل اطلاعات با پایگاهداده استفاده میشود. شبکه نخست شبکه خصوصی و شبکه دوم شبکه عمومی نامیده میشود.
آدرسهای شبکه خصوصی که برای ارتباطات داخلی Clusterware استفاده میشود، توسط کاربران قابلدسترسی نخواهد بود. با توجه به تنظیمات شبکه خصوصی کلاستر اوراکل ممکن است به یک یا بیشتر آدرس شبکه خصوصی نیاز باشد.
در این مقاله به ایجاد یک کارت شبکه مجازی حاصل از دو کارت شبکه حقیقی پرداخته میشود. سپس این کارت شبکه مجازی جایگزین کارت شبکه حقیقی موجود در شبکه خصوصی یک کلاستر اوراکل میشود.
مفروضات
در این مستند یک کلاستر دو نود اوراکل از پیش نصب و برپاسازی شده است. این دو نود با نامهای Node01 و Node02 دارای دو کارت شبکه eth0 و eth1 هستند. شبکه این کلاستر عبارت است از :
Public network – eth0
Node1 : 192.9.201.183
Node2 : 192.9.201.187
Private interconnect – eth1
Node1 : 10.0.0.1
Node2 : 10.0.0.2
حال پیش از روشن کردن نودها، به هر ماشین دو کارت شبکه با نام eth2 و eth3 تخصیص داده میشود.
مراحل
ماشینها روشن شده و وضعیت سرویس کلاستر بررسی میشود. هدف از این بررسی احراز وضعیت نرمال سرویسها است.
[grid@Node01 ~]$ crsctl stat res -t
پس از احراز وضعیت سرویسها، اطلاعات شبکههای بکار رفته در کلاستر بررسی میشود. هدف از این بررسی احراز آدرسهای شبکه میباشد.
[grid@Node01 ~]$ oifcfg getif
eth0 192.9.201.0 global public
eth1 10.0.0.0 global cluster_interconnect
درصورتیکه کارتهای شبکه جدید از سرویس DHCP آدرس گرفته باشند، لازم است غیرفعال شوند. کارت شبکه eth1 که پیشتر بهعنوان نقطه اتصال ماشین به شبکه خصوصی مورداستفاده قرار میگرفت، اکنون دارای آدرس IP، Netmask و ... میباشد. در این مستند آدرسهای این کارت شبکه بهعنوان آدرسهای کارت شبکه مجازی استفاده میشود. ازاینرو لازم این آدرسها از کارت شبکه eth1 حذف شوند. بنابراین نیازی به انجام تغییرات در فایل /etc/hosts و یا سرویس DNS نخواهد بود. این دو مرحله بر روی هر دو سرور انجام میشود.
حال اقدام به ایجاد کارت شبکه مجازی با نام bond0 میشود. برای این منظور یک فایل تنظیمات به آدرس /etc/sysconfig/network-scripts/ifcfg-bond0 ایجاد میشود. این فایل تنظیمات در ماشین Node01 به شرح زیر است.
[root@Node01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=10.0.0.1
NETWORK=10.0.0.0
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
این تنظیمات عبارت است از :
- DEVICE : این متغیر نام دستگاه شبکه مجازی را تعیین میکند.
- IPADDR : مقدار این متغیر برابر آدرس IP شبکه آن است.
- NETWORK : آدرس شبکهای که دستگاه در آن قرار دارد توسط این متغیر مشخص میشود.
- NETMASK : مقدار Netmask توسط این پارامتر مشخص میشود.
- USERCTL : این پارامتر دسترسی کاربران غیر root در مورد کنترل این دستگاه را مشخص میکند.
- BOOTPROTO : این پارامتر نوع آدرسدهی دستگاه را مشخص میکند. مقدار none برابر آدرسدهی دستی میباشد.
- ONBOOT : این پارامتر راهاندازی خودکار دستگاه حین آغاز سیستمعامل را مشخص میکند.
فایل تنظیمات مربوطه برای ماشین Node02 به شرح زیر است.
[root@Node02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=10.0.0.2
NETWORK=10.0.0.0
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
تنها تمایز محتویات این فایل در دو ماشین مقدار پارامتر IPADDR است.
پس از انجام تنظیمات کارت شبکه مجازی، لازم است کارتهای شبکه حقیقی تنظیم شوند. تنظیمات کارت شبکه eth2 بر روی هر دو ماشین بدین ترتیب است.
[root@Node01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
همچنین تنظیمات کارت شبکه eth3 بر روی هر دو سرور برابر است با :
[root@Node01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
پس از طی نمودن مراحل فوق لازم است ماژول Bond تنظیم شود. این تنظیمات بر روی هر دو ماشین انجام میشود. تنظیمات ماژولهای سیستمعامل لینوکس درون فایل /etc/modprobe.conf انجام میشود. تنظیمات مربوط به ماژول Bond برای دستگاه مجازی bond0 به شرح زیر است.
alias bond0 bonding
options bond0 mode=balance-alb miimon=100
این تنظیم شامل دو خط میباشد. در خط نخست نام کارت شبکه مجازی تعریف میشود. درون خط دوم از دو پارامتر mode و miimon استفاده شده است. پارامتر mode نوع تنظیمات بین کارتهای شبکه حقیقی را مشخص مینماید. مدل alb از کلیه کارتهای شبکه بهصورت Round Robin استفاده میکند. فهرست مدلهای پشتیبانیشده به شرح زیر است.
- mode=0 (Balance Round Robin)
- mode=1 (Active backup)
- mode=2 (Balance XOR)
- mode=3 (Broadcast)
- mode=4 (802.3ad)
- mode=5 (Balance TLB)
- mode=6 (Balance ALB)
برای دریافت اطلاعات بیشتر در مورد هر یک از مدلها میتوان به آدرس NIC Bonding مراجعه کرد. همچنین پارامتر miimon بازه زمانی برای نظارت و اعمال سیاستهای مشخص بر روی کارتهای شبکه حقیقی را مشخص مینماید. با استفاده از دستور زیر ماژول bonding که تنظیم شده است، بارگذاری میشود.
[root@Node01 ~]# modprobe bonding
برای آغاز شدن دستگاه مجازی bond0 و همچنین آزمایش صحت عملکرد آن، سرویس شبکه راهاندازی مجدد میشود.
[root@Node01 ~]# /etc/init.d/network restart
پس از راهاندازی مجدد سرویس شبکه باید دستگاه مجازی bond0 آغاز شود. حال لازم است دستگاه مجازی bond0 بجای کارت شبکه حقیقی eth1 در تنظیمات کلاستر اوراکل معرفی شود. برای این منظور ابتدا CRS بر روی هر دو ماشین متوقف میشود. لازم دستور زیر بر روی هر دو ماشین اجرا شود.
[root@Node01 ~]# crsctl disable crs
سپس با استفاده از دستور زیر bond0 جایگزین eth1 در تنظیمات شبکه کلاستر اوراکل میشود.
[root@Node01 ~]# oifcfg delif -global eth1/10.0.0.0
[root@Node01 ~]# oifcfg setif -global bond0/10.0.0.0:cluster_interconnect
حال سرویس CRS راهاندازی مجدد میشود.
[root@Node01 ~]# crsctl stop crs
[root@Node01 ~]# crsctl start crs
- ۹۶/۰۶/۱۵
- ۸۹۹ نمایش
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.