اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

چگونه از logical volume خود snapshot بگیریم و در LVM ریستور کنیم ؟ (بخش 3)

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    چگونه از logical volume خود snapshot بگیریم و در LVM ریستور کنیم ؟ (بخش 3)

    snapshot های LVM در حقیقت کپی هایی از volume های LVM هستند آنها تنها با lvm کار میکنند و تنها زمانی فضا اشغال میکنند که تغییرات اعمال شده در logical volume مبداء به volume snapshot منتقل شود. اگر volume مبداء تغییرات زیادی داشته باشند دقیقا تغییرات یکسان در volume snapshot هم ایجاد خواهد شد. بهتر است که همیشه سایز کمی از تغییرات اشغال شود. در مواقعی که snapshot فضای بیشتری از storage را اشغال کند میتوانیم از lvextend برای افزایش استفاده کنیم. اگر بخواهیم snpashot را shrink کنیم از lvreduce میتوانیم استفاده کنیم.

    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Take-Snapshot-in-LVM.jpg مشاهده: 1 حجم: 33.8 کیلو بایت





    اگر به صورت تصادفی بعد از ایجاد یک snapshot هر فایلی را پاک کنیم نیاز نیست نگران باشیم زیر snapshot فایل های اورجینال که ما پاک کردیم را دارد. ممکن است زمانی که snapshot گرفته شده فایل هنوز در سرور بوده باشد.
    فراموش نکنید که snapshot volume خود را به درستی نگه دارید از آنجایی که برای یک recovery سریع استفاده میشود.

    snapshot ها نمیتوانند برای گزینه backup مورد استفاده قرار گیرند. بک آپ ها کپی اولیه اطلاعات هستند در نتیجه نمیتوانید از snapshot به عنوان یک گزینه backup استفاده کنیم.

    تجهیزات مورد نیاز :
    - نصب LVM
    - دانستن نحوه اضافه و کم کردن فضای LVM

    تنظیمات سرور من :
    سیستم عامل centos 6.5 با نصب lvm
    server ip : 192.168.0.200


    مرحله اول :
    ایجاد LVM Snapshot :

    ابتدا فضای آزاد در volume group را برای ایجاد یک snapshot جدید بررسی کنید :
    کد PHP:
    # vgs
    # lvs 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-LVM-Disk-Space-linux-zone-forums.jpg مشاهده: 1 حجم: 65.7 کیلو بایت



    همانطور که میبینید 8 GB فضای آزاد در خروجی کامند vgs باقی مانده است. در نتیجه میخواهیم یک snapshot از یکی از volume هایم با نام tecmint_datas ایجاد کنیم. من قصد دارم تنها snapshot یک گیگی بسازم. با استفاده از دستور زیر :
    کد PHP:
    # lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

    OR

    # lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas 
    هر 2 دستور بالا یک کار را انجام میدهند :
    s- : ایجاد snapshot
    n- : انتخاب نام برای snapshot
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Create-LVM-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 44.1 کیلو بایت



    و حالا توضیح موارد highlighted شده در بالا :
    - سایز snapshot که در حال ایجاد آن هستم
    - ایجاد snapshot
    - ایجاد نام برای snapshot
    - نام snapshot جدید
    - volume که میخواهیم برای آن یک snapshot ایجاد کنیم
    - اگر بخواهیم یک snapshot را حذف کنیم باید از دستور lvremove برای این کار استفاده کنیم :
    کد PHP:
    # lvremove /dev/vg_tecmint_extra/tecmint_datas_snap 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Remove-LVM-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 46.9 کیلو بایت



    اکنون snapshot اخیرا ایجاد شده را با استفاده از دستور زیر list میکنیم :
    کد PHP:
    # lvs 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Verify-LVM-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 56.2 کیلو بایت



    همانطور که در بالا میبینید snapshot با موفقیت در بالا ایجاد شده. همانطور که در تصویر بالا با فلش قرمز مارک شده است tecmint_datas در حقیقت volume اصلی و اولیه ایست که snapshot از آن ایجاد گردیده است.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-LVM-Snapshot-Space-linux-zone-forums.jpg مشاهده: 1 حجم: 66.5 کیلو بایت



    در اینجا چندین فایل جدید را درون tecmint_datas اضافه میکنیم. در حال حاضر volume یکسری اطلاعات حدود 650 MB دارد و سایز snapshot ما 1 GB میباشد. در نتیجه فضای کافی برای بک آپ تغییرات مان در volume snapshot موجود میباشد. با استفاده از دستور زیر وضعیت snapshot مان را بررسی میکنیم :
    کد PHP:
    # lvs 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-Snapshot-Status-linux-zone-forums.jpg مشاهده: 1 حجم: 61.9 کیلو بایت



    همانطور که میبینید 51٪ از volume snapshot استفاده شده و مشکلی برای اعمال تغییرات بیشتر در فایل هایتان نیست. برای کسب اطلاعات جزءی بیشتر از دستور زیر استفاده کنید :
    کد PHP:
    # lvdisplay vg_tecmint_extra/tecmint_data_snap 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Snapshot-Information-linux-zone-forums.jpg مشاهده: 1 حجم: 145.1 کیلو بایت



    توضیح واضحی از موارد highlighte شده در تصویر بالا :
    - نام snapshot logical volume
    - نام volume group که در حال حاضر تحت استفاده میباشد.
    - snapshot volume در مد read و write میباشد حتی میتوانید volume را mount کرده و از آن استفاده کنید.
    - زمانی که snapshot ایجاد شده که بسیار مهم است زیرا snapshot دنبال هر تغییری بعد از این زمان میگردد.
    - این snapshot متعلق به logical volume با نام tecmint_datas میباشد.
    - logical volume آنلاین و در دسترس برای استفاده میباشد.
    - سایز source volume که از آن snapshot گرفتیم.
    - سایز cow-table که برابر با copy on write میباشد که به این معنی است که هر تغییری که روی tecmint_data اعمال شود روی این snapshot هم نوشته خواهد شد.
    - سایز snapshot موجود، tecmint_datas 10 GB بود اما سایز snapshote ما 1 GB بود و این به این معناست که فایل های ما حدود 650 MB هستند. بنابراین چیزی که الان موجود هست 51٪ بوده که اگر فایل تا سایز 2 GB در سایز tecmint_datas بیشتر شود از snapshot ما بیشتر بزرگتر خواهد شد و قطعا با snapshot به مشکل بر خواهیم خورد. این به این معناست که ما نیاز داریم سایز logical volume را افزایش دهیم. (snapshot volume)
    - سایز قطعه برای snapshot را به ما میدهد.

    اکنون بیشتر از 1 GB از فایل ها را در tecmint-datas کپی میکنیم ببینیم چه اتفاقی خواهد افتاد. اگر این کار را انجام دهید پیغام خطای "input/output error" را دریافت خواهید کرد. که یعنی در snapshot فضای موجود نیست :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Add-Files-to-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 146.3 کیلو بایت



    اگر logical volume پر شود به صورت اتوماتیک از کار می افتد و دیگر نمیتوان از آن استفاده کرد. حتی اگر سایز snapshot volume را افزایش دهیم. بهترین ایده سایز یکسان سورس هنگام ایجاد یک snapshot میباشد.
    سایز tecmint_datas 10 GB بود اگر من یک snapshot با سایز 10 GB ایجاد کنم هرگز به مشکلی شبیه به آنچه که در بالا دیدید بر نمیخورد زیرا فضای کافی برای ایجاد snap از volume شما موجود است.


    مرحله 2 :
    افزایش snapshot در LVM :

    اگر ما نیاز داشته باشیم که سایز snapshot را قبل از پر شدن افزایش دهیم میتوانیم از دستور زیر استفاده کنیم :
    کد PHP:
    # lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap 
    اکنون کلا 2 GB سایز برای snapshot موجود است :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Extend-LVM-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 33.4 کیلو بایت



    سپس سایز جدید و COW table را با استفاده از دستور زیر بررسی میکنیم :
    کد PHP:
    # lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap 
    دستور زیر برای فهمیدن سایز snapvolume و % میباشد :
    کد PHP:
    # lvs 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-Size-of-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 194.3 کیلو بایت



    اما اگر شما snapshot volume با اندازه یکسان با source volume دارید نیازی به نگرانی در مورد این مسایل نیست.



    مرحله 3 :
    restor کردن snapshot یا merging :

    برای restor کردن snapshot باید ابتدا فایل سیستم را unmount کنیم :
    کد PHP:
    # unmount /mnt/tecmint_datas/ 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Unmount-File-System-linux-zone-forums.jpg مشاهده: 1 حجم: 27.9 کیلو بایت



    با دستور زیر چک میکنیم که آیا فایل سیستم unmount شده یا نه :
    کد PHP:
    # df -h 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-Mount-Points-linux-zone-forums.jpg مشاهده: 1 حجم: 45.5 کیلو بایت



    همانطور که در تصویر بالا میبینیم unmount شده در نتیجه میتوانیم به restore مان ادامه دهیم. برای ریستور کردن snap دستور lvconvert را استفاده میکنیم :
    کد PHP:
    # lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Restore-Snapshot-linux-zone-forums.jpg مشاهده: 1 حجم: 67.2 کیلو بایت



    بعد از اینکه عملیات merge کامل شد snapshot volume به صورت اتوماتیک حذف خواهد شد اکنون ما میتوانیم فضای پارتیشن مان با استفاده از دستور df مشاهده کنیم :
    کد PHP:
    # df -Th 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-Snapshot-Space-linux-zone-forums.jpg مشاهده: 1 حجم: 66.1 کیلو بایت



    بعد از اینکه snapshot volume به صورت اتوماتیک حذف شد شما میتوانید سایز logical volume را مشاهده بفرمایید :
    کد PHP:
    # lvs 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Check-Size-of-LV-linux-zone-forums.jpg مشاهده: 1 حجم: 42.6 کیلو بایت



    نکته مهم : برای افزایش snapshot ها به صورت اتوماتیک ما میتوانیم تغییراتی در فایل conf. اعمال کنیم. مثلا به صورت دستی با استفاده از lvextend فضا را افزایش دهیم.

    فایل تنظیمات lvm را با ادیتور مورد دلخواه خود باز کنید :
    کد PHP:
    # vim /etc/lvm/lvm.conf 
    کلمه autoextend را جستجو کنید که به صورت پیش فرض شبیه به نمونه زیر میباشد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: LVM-Configuration-linux-zone-forums.jpg مشاهده: 1 حجم: 17.4 کیلو بایت



    در اینجا 100 را به 75 تغییر دهید اگر چنین کنید آستانه افزایش اتوماتیک 75 و درصد افزایش خودکار 20 میباشد. که سایز را 20 درصد بیشتر افزایش خواهد داد.

    اگر snapshot volume به 75٪ برسد به صورت اتوماتیک سایز snap volume را 20٪ بیشتر افزایش خواهد داد. بنابراین ما میتوانیم به صورت اتوماتیک افزایش داشته باشیم در نهایت فایل را با استفاده از wq ذخیره و از آن خارج میشویم.

    این امر snapshot را از بروز هر گونه مشکلی در امان نگه خواهد داشت. همچنین به شما کمک میکند تا زمان بیشتری را صرفه جویی کنید. LVM تنها روش پارتیشنی است که با استفاده از آن شما میتوانید فضا را افزایش یا کاهش دهید همچنین دارای ویژگی های بیشماری از جمله Provisioning, Striping, Virtual Volume و thin-pool میباشد که در تاپیک های بعدی به آنها خواهیم پرداخت.


    همچنین توصیه میشود مطالعه کنید :

    بخش اول : آموزش کامل پارتیشن بندی LVM در لینوکس

    بخش دوم : How to Extend/Reduce LVM’s in Linux

    بخش چهارم : Setup 4hin Provisioning Volumes in LVM

    بخش پنجم : Manage Multiple LVM Disks using Striping I/O

    بخش ششم : Migrating LVM Partitions to New Logical Volume (Drive)


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 10-21-2019, 06:55 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X