تجربه‌های مفید و کاربردی Linux و Weblogic

این وبلاگ برای به اشتراک گذاشتن تجربه‌های کسب شده مرتبط با سیستم عامل Linux و weblogic می‌باشد.

تجربه‌های مفید و کاربردی Linux و Weblogic

این وبلاگ برای به اشتراک گذاشتن تجربه‌های کسب شده مرتبط با سیستم عامل Linux و weblogic می‌باشد.

  • ۰
  • ۰

ASM configuration to use multipath

ارتباط multipath و oracleasm

برای اینکه شما از قابلیت multipath و یا سرویس‌هایی از این قبیل مانند powerpath برای کاهش ریسک افتادن اوراکل خود می‌خواهید بهره ببرید، تنها نصب و کانفیگ Multipath کافی نمی‌باشد. شما می‌بایست ASM خود را نیز برای کار با سرویس Multipath تطبیق دهید. ما زمانی از Multipath استفاده می‌کنیم که مسیر (path)های زیادی (بیشتر از یک مسیر) از سیستم عامل به دیسک‌های اوراکل برقرار باشد.

کاری که asm انجام می‌دهد این است که در هدر دیسک مشخصاتی را درج می‌کند تا بفهمد که این دیسک برای اوراکل است. شما وقتی  Multipath را کانفیگ کنید تنها سرویس‌هایی که از لایه‌ی Multipath رد می‌شوند می‌توانند از قابلیت‌های آن استفاده کنند. بنابراین اگر شما asm خود را برای این منظور کانفیگ نکنید، احتمال این وجود دارد که لایه‌ی Multipath درگیر بازی نشود و در این صورت این بدان منزله است که گویی شما multipath ندارید.

وقتی دیسکی پشت سرویس Multipath قرار می‌گیرد یک نام مانند mpatha به آن اختصاص می‌یابد که به‌طور مثال دو مسیر sdb و sdc برای دیسک موردنظر موجود می‌باشد. در نتیجه این دیسک در سیستم عامل با سه نام sdb,sdc,mpatha دیده می‌شود. اگر شما asm را برای این منظور کانفیگ نکرده باشید و آن را با کانفیگ پیش‌فرض رها کرده باشید هیچ تضمینی وجود ندارد که به سراغ کدام مسیر برود و از آن استفاده کند. اگر به صورت تصادفی از maptha استفاده کند شما به صورت تصادفی سرویس multipath  را در بازی دارید ولی اگر هر مسیر دیگری را انتخاب کند دیگر شما از قابلیت‌های multipath برخوردار نخواهید بود. برای کانفیگ asm کافی‌ست شما در فایل /etc/sysconfig/oracleasm دو خط زیر را اضافه کنید:

ORACLEASM_SCANORDER="dm"

ORACLEASM_SCANEXCLUDE="sd"

مقادیر موجود بین “” به عنوان prefix درنظر گرفته می‌شوند.

با استفاده از مغیر اول شما اولویت scan دیسک‌های خود را مشخص می‌کنید، به این معنی که به asm می‌گویید که نخست به سراغ مسیرهای multipath برود.

با استفاده از متغیر دوم شما به asm می‌گویید که دیسک‌هایی که با sd شروع می‌شوند را در فرآیند scan نادیده بگیرد و به این ترتیب از اختصاص مسیرهای غیرmultipathی به asm جلوگیری می‌کند.

مشکلی که برای من پیش آمده بود این بود که بعد از کانفیگ asm برای استفاده از multipath ، باز هم asm به سراغ لایه‌ی multipath نمی‌رفت و مسیرهایی از قبیل sdb را به عنوان دیسک asm خود درنظر می‌گرفت. پس از کمی جستجو متوجه شدم فایل /etc/sysconfig/oracleasm در اصل یک symbolic link به فایل /etc/sysconfig/oracleasm-_dev_oracleasm  است که این لینک شکسته شده است. که در ابتدا مجبور به پاک کردن فایل /etc/sysconfig/oracleasm و پس از آن ساخت یک لینک جدید شدم که باعص برطرف شدن مشکل شد.

#ll /etc/sysconfig/oracleasm*

lrwxrwxrwx  1 root root  24 Dec 20  2013 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm

-rw-r--r--. 1 root root 976 May 21  2014 /etc/sysconfig/oracleasm-_dev_oracleasm

 

حال از کجا بفهمیم که asm آیا از سرویس multipath استفاده می‌کند یا خیر؟

دستور

Oracleasm listdisks لیست دیسک‌های asm را به ما می‌دهد.

احتمالا با دستور

Oracleasm querydisk –p

آشنایی دارید. این دستور در اصل لیست دیسک‌های متناظر دیسک‌های ASMی را در سیستم عامل به ما می‌دهد. این دستور در این مورد به شما کمکی نخواهد کرد چرا که مثلا برای شما برای دیسک DATA01 در ASM خروجی با سه خط

DATA01 is a valid disk on mpatha

….                                            On sdb

                                             on sdc

مشاهده خواهید کرد. هر سه مسیر به یک دیسک منتهی می‌شوند ولی ASM از کدام مسیر استفاده می‌کند؟

با استفاده از سوئیچ d  در دستور Oracleasm querydisk  شما خروجی مانند زیر خواهید یافت

Disk "DATA01" is a valid ASM disk on device [253,200]

و سپس با استفاده از دستورات زیر(و major-minor number)دقیقا مشاهده خواهید کرد که آیا asm در حال حاضر از سرویس multipath شما استفاده می‌کند یا خیر

#cat /proc/partitions | grep "\ 253\ " | grep "\ 200\ "

253      200  461371392 dm-200

                                                                                                                                                                                               

#ll /dev/* | grep dm-200

brw-rw----  1 root disk    253, 200 Sep  2 11:26 /dev/dm-200

lrwxrwxrwx 1 root root 9 Sep  2 11:26 253:200 -> ../dm-200

lrwxrwxrwx 1 root root      9 Sep  2 11:26 mpathcwp1 -> ../dm-200

هماگونه که مشاهده می‌فرمائید در حال حاضر asm از سرویس multipath استفاده می‌کند.

اگر اینگونه نبود شما زمانی که را اجرا می‌کردید نتیجه‌ای مانند زیر می‌یافتید:

# cat /proc/partitions | grep "\ 70\ " | grep "\ 65\ "

  70       65  461371392 sdcw1

که به وضوح می‌گوید که asm مسیر sdcw را برای کار برگزیده است.

  • ۹۷/۰۶/۱۲
  • Mahmoud Kazemi

نظرات (۱)

عالی بود

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی