آزمایشگاه: راه اندازی lvm، حمله به لینوکس

یک انحراف کوچک: این LR مصنوعی است.
برخی از کارهایی که در اینجا توضیح داده شده را می توان بسیار ساده تر انجام داد، اما از آنجایی که وظیفه l/r شناخت
با عملکرد raid و lvm، برخی از عملیات ها به طور مصنوعی پیچیده هستند.

الزامات ابزار برای انجام LR:

  • ابزارهای مجازی سازی مانند Virtualbox
  • برای مثال تصویر نصب لینوکس دبیان 9
  • در دسترس بودن اینترنت برای دانلود چندین بسته
  • اتصال از طریق ssh به VM نصب شده (اختیاری)

توجه

این کار آزمایشگاهی به موضوع ظریفی مانند امنیت داده مربوط می شود - این منطقه ای است که در آن
که به شما امکان می دهد به دلیل کوچکترین خطا - یک حرف یا عدد اضافی - تمام داده های خود را از دست بدهید.
از آنجایی که شما در حال انجام کارهای آزمایشگاهی هستید، هیچ خطری برای شما وجود ندارد، به جز اینکه مجبور خواهید بود این کار را از نو شروع کنید.
در زندگی واقعی، همه چیز بسیار جدی تر است، بنابراین شما باید نام دیسک ها را با دقت و درک دقیق وارد کنید
دقیقاً با دستور فعلی چه می کنید و با چه دیسک هایی کار می کنید.

دومین نکته مهم، نامگذاری دیسک ها و پارتیشن ها است: بسته به شرایط، شماره دیسک ها ممکن است متفاوت باشد.
از مقادیری که در دستورات در کار آزمایشگاهی ارائه شده است.
بنابراین، به عنوان مثال، اگر دیسک sda را از آرایه حذف کنید و سپس یک دیسک جدید اضافه کنید، دیسک جدید نمایش داده می شود.
در سیستمی به نام sda. اگر قبل از افزودن دیسک جدید راه اندازی مجدد کنید، دیسک جدید است
دیسک sdb نامیده می شود و دیسک قدیمی sda نامیده می شود

همانطور که اکثر دستورات نیاز دارند، آزمایشگاه باید به عنوان superuser (root) اجرا شود
امتیازات بالا و افزایش مداوم امتیازات از طریق sudo منطقی نیست

مواد مطالعه

  • RAID
  • LVM
  • نامگذاری دیسک در سیستم عامل لینوکس
  • بخش چیست
  • جدول پارتیشن چیست و در کجا ذخیره می شود؟
  • گراب چیست

ابزارهای استفاده شده

1) مشاهده اطلاعات دیسک

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
  • fdisk -l
    2) مشاهده اطلاعات و کار با LVM
  • pvs
  • pvextend
  • pvcreate
  • pvresize
  • و غیره
  • vgreduce
  • lvs
  • lvextend
    3) مشاهده اطلاعات و کار با RAID
  • cat /proc/mdstat
  • مادم
    4) نقاط نصب
  • استقرار (mount)
  • جمع کردن
  • cat /etc/fstab
  • cat /etc/mtab
    5) پارتیشن مجدد دیسک
  • fdisk /dev/XXX
    6) کپی کردن پارتیشن ها
  • dd if=/dev/xxx of=/dev/yyyy
    7) کار با جدول پارتیشن
  • partx
  • sfdisk
  • mkfs.ext4
    8) کار با بوت لودر
  • grub-install /dev/XXX
  • بروزرسانی-گراب
    9) متفرقه
  • lsof
  • مناسب
  • rsync

کار آزمایشگاهی شامل 3 بخش است:

  • راه اندازی یک سیستم کاری با استفاده از lvm، raid
  • شبیه سازی یکی از خرابی های دیسک
  • جایگزینی دیسک در حال پرواز، افزودن دیسک های جدید و جابجایی پارتیشن ها.

وظیفه 1 (نصب سیستم عامل و پیکربندی LVM، RAID)

1) یک ماشین مجازی جدید ایجاد کنید و ویژگی های زیر را به آن بدهید:

  • 1 گیگابایت رم
  • 1 سی پی یو
  • 2 hdd (نام آنها را ssd1، ssd2 بگذارید و اندازه های مساوی را تعیین کنید، جعبه های hot swap و ssd را بررسی کنید)
  • کنترلر SATA برای 4 پورت پیکربندی شده است

آزمایشگاه: راه اندازی lvm، حمله به لینوکس

2) نصب لینوکس را شروع کنید و وقتی به انتخاب هارد دیسک رسیدید، موارد زیر را انجام دهید:

  • روش پارتیشن بندی: دستی، پس از آن باید این تصویر را ببینید:
    آزمایشگاه: راه اندازی lvm، حمله به لینوکس

  • تنظیم یک پارتیشن جداگانه برای /boot: اولین دیسک را انتخاب کرده و یک جدول پارتیشن جدید روی آن ایجاد کنید

    • اندازه پارتیشن: 512M
    • نقطه نصب: /boot
    • تنظیمات دیسک دوم را تکرار کنید، اما از آنجایی که نمی توانید همزمان دو بار mount /boot کنید، نقطه mount را انتخاب کنید: هیچ، در نهایت موارد زیر را دریافت کنید (تصویر با یک جابجایی، برای انجام مجدد آن بسیار تنبل است):
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس

  • راه اندازی RAID:

    • فضای خالی روی دیسک اول را انتخاب کنید و نوع پارتیشن را به عنوان حجم فیزیکی برای RAID پیکربندی کنید
    • "تنظیم پارتیشن انجام شد" را انتخاب کنید
    • دقیقاً همان تنظیمات را برای دیسک دوم تکرار کنید و نتیجه زیر است:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس
    • "پیکربندی نرم افزار RAID" را انتخاب کنید
    • دستگاه MD ایجاد کنید
    • نوع دستگاه RAID نرم افزار: یک آرایه آینه ای را انتخاب کنید
    • دستگاه های فعال برای آرایه RAID XXXX: هر دو درایو را انتخاب کنید
    • دستگاه های یدکی: 0 را به عنوان پیش فرض بگذارید
    • دستگاه های فعال برای آرایه RAID XX: پارتیشن هایی را که تحت raid ایجاد کرده اید انتخاب کنید
    • پایان
    • در نتیجه، شما باید یک عکس مانند زیر دریافت کنید:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس

  • پیکربندی LVM: Configure the Logical Volume Manager را انتخاب کنید

    • طرح بندی پارتیشن فعلی را حفظ کنید و LVM را پیکربندی کنید: بله
    • ایجاد گروه حجم
    • نام گروه حجم: سیستم
    • دستگاه ها برای گروه حجم جدید: RAID ایجاد شده خود را انتخاب کنید
    • حجم منطقی ایجاد کنید
    • نام حجم منطقی: ریشه
    • اندازه حجم منطقی: 25 اندازه دیسک شما
    • حجم منطقی ایجاد کنید
    • نام حجم منطقی: var
    • اندازه حجم منطقی: 25 اندازه دیسک شما
    • حجم منطقی ایجاد کنید
    • نام حجم منطقی: log
    • اندازه حجم منطقی: 15 اندازه دیسک شما
    • با انتخاب Display configuration details باید تصویر زیر را دریافت کنید:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس
    • پس از تکمیل راه اندازی LVM باید موارد زیر را مشاهده کنید:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس

  • طرح بندی پارتیشن: یکی یکی هر حجم ایجاد شده در LVM را انتخاب کنید و آنها را به عنوان مثال برای روت به این صورت طرح بندی کنید:

    • استفاده به عنوان: ext4
    • نقطه نصب:/
    • نتیجه علامت گذاری پارتیشن ریشه باید به شکل زیر باشد:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس
    • عملیات پارتیشن بندی را برای var و log تکرار کنید، نقاط اتصال مناسب را انتخاب کنید (/var و /var/log که به صورت دستی وارد شده اند) و نتیجه زیر را به دست آورید:
      آزمایشگاه: راه اندازی lvm، حمله به لینوکس
    • Finish Partitioning را انتخاب کنید
    • از شما چندین سوال در مورد این واقعیت پرسیده می شود که هنوز یک پارتیشن نصب نشده دارید و swap پیکربندی نشده است. به هر دو سوال باید پاسخ منفی داد.

  • نتیجه نهایی باید به این صورت باشد:
    آزمایشگاه: راه اندازی lvm، حمله به لینوکس
    3) نصب سیستم عامل را با نصب grub در اولین دستگاه (sda) به پایان برسانید و سیستم را بوت کنید.
    4) محتویات پارتیشن /boot را از درایو sda (ssd1) در درایو sdb (ssd2) کپی کنید.

    dd if=/dev/sda1 of=/dev/sdb1

    5) grub را روی دستگاه دوم نصب کنید:

  • به دیسک های موجود در سیستم نگاه کنید:

    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

  • تمام دیسک هایی را که دستور قبلی به شما داده است لیست کنید و نوع دیسکی را توضیح دهید

  • درایوی که گراب در آن نصب نشده بود را پیدا کنید و این نصب را انجام دهید:
    grub-install /dev/sdb

  • اطلاعات مربوط به حمله فعلی را با دستور cat /proc/mdstat مشاهده کنید و آنچه را می بینید بنویسید.

  • به خروجی دستورات: pvs، vgs، lvs، mount نگاه کنید و بنویسید دقیقا چه چیزی دیدید

با کلمات خود شرح دهید که چه کاری انجام دادید و چه نتیجه ای از این کار گرفتید.

پس از انجام این کار، توصیه می شود یک نسخه پشتیبان از پوشه ماشین مجازی ذخیره کنید یا بسازید
جعبه ولگرد: https://t.me/bykvaadm/191

نتیجه: ماشین مجازی با دیسک های ssd1، ssd2

وظیفه 2 (شبیه سازی خرابی یکی از دیسک ها)

1) اگر کادر مبادله داغ را علامت زده باشید، می‌توانید دیسک‌ها را در لحظه حذف کنید

  • دیسک ssd1 را در ویژگی های ماشین حذف کنید
  • دایرکتوری را پیدا کنید که فایل های ماشین مجازی شما در آن ذخیره شده است و ssd1.vmdk را حذف کنید
    2) مطمئن شوید که ماشین مجازی شما هنوز در حال کار است
    3) ماشین مجازی را مجددا راه اندازی کنید و مطمئن شوید که هنوز در حال اجرا است
    4) وضعیت آرایه RAID را بررسی کنید: cat /proc/mdstat
    5) یک دیسک جدید با همان اندازه در رابط VM اضافه کنید و نام آن را ssd3 بگذارید
    6) عملیات را انجام دهید:
  • ببینید که دیسک جدید با استفاده از fdisk -l وارد سیستم شده است
  • جدول پارتیشن را از دیسک قدیمی به دیسک جدید کپی کنید: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
  • با استفاده از fdisk -l به نتیجه نگاه کنید
  • یک دیسک جدید به آرایه raid اضافه کنید: mdadm —manage /dev/md0 —add /dev/YYY
  • به نتیجه نگاه کنید: cat /proc/mdstat. باید ببینید که همگام سازی شروع شده است
    7) اکنون باید پارتیشن هایی را که بخشی از RAID نیستند به صورت دستی همگام سازی کنید.
    برای انجام این کار، ما از ابزار dd استفاده می کنیم و از دیسک "live" به دیسک جدیدی که اخیراً نصب کرده اید کپی می کنیم.

    dd if=/dev/XXX of=/dev/YYY

    8) پس از اتمام همگام سازی، grub را روی درایو جدید نصب کنید
    9) VM را مجددا راه اندازی کنید تا مطمئن شوید همه چیز کار می کند
    با کلمات خود شرح دهید که چه کاری انجام دادید و چه نتیجه ای از این کار گرفتید.
    نتیجه: دیسک ssd1 حذف شد، دیسک ssd2 ذخیره شد، دیسک ssd3 اضافه شد.

    وظیفه 3 (افزودن دیسک های جدید و انتقال پارتیشن)

    این پیچیده ترین و حجیم ترین کار از همه ارائه شده است.
    با دقت بررسی کنید که چه کاری انجام می دهید و با کدام دیسک ها و پارتیشن ها.
    توصیه می شود قبل از اجرای آن یک کپی تهیه کنید.
    این وظیفه مستقل از وظیفه شماره 2 است، می توان آن را پس از کار شماره 1، تنظیم شده برای نام دیسک، انجام داد.
    قسمت دوم این کار آزمایشگاهی باید دقیقاً به همان حالتی منتهی شود که پس از تکمیل قسمت اول بود.

    برای آسان‌تر کردن کارتان، توصیه می‌کنم دیسک‌ها را به‌صورت فیزیکی از دستگاه میزبان حذف نکنید، بلکه فقط آن را حذف کنید
    آنها را در ویژگی های دستگاه جدا کنید. از نظر سیستم عامل در VM دقیقاً یکسان به نظر می رسد، اما شما می توانید
    اگر اتفاقی افتاد، دیسک را به عقب وصل کنید و کار را با چرخاندن چند نقطه به عقب ادامه دهید، اگر
    شما مشکل دارید برای مثال، ممکن است این کار را اشتباه انجام داده باشید یا فراموش کرده باشید پارتیشن /boot را در دیسک جدید کپی کنید.
    من فقط می توانم به شما توصیه کنم که چندین بار یا حتی بهتر از دیسک ها و پارتیشن هایی که با آنها کار می کنید دوباره بررسی کنید.
    مطابقت بین دیسک ها، پارتیشن ها و شماره دیسک "فیزیکی" را روی یک کاغذ بنویسید. درخت زیبا و شفاف
    تیم مساوی می کند lsblk، تا حد امکان از آن برای تجزیه و تحلیل آنچه انجام داده اید و آنچه باید انجام شود استفاده کنید.

    به داستان...

    تصور کنید سرور شما برای مدت طولانی روی 2 درایو SSD کار می کند، زمانی که ناگهان ...

    1) با حذف دیسک از ویژگی های VM و راه اندازی مجدد، خرابی دیسک ssd2 را شبیه سازی کنید.
    2) وضعیت فعلی دیسک ها و RAID را مشاهده کنید:

    cat /proc/mdstat
    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

    3) شما خوش شانس هستید - روسای شما به شما اجازه خرید چندین دیسک جدید را داده اند:

    2 SATA با ظرفیت زیاد برای کار طولانی مدت انتقال پارتیشن با لاگ به یک دیسک جداگانه

    2 SSD برای جایگزینی SSD که مرده است و همچنین برای جایگزینی SSD که هنوز کار می کند.

    لطفاً توجه داشته باشید که سبد سرور فقط از نصب 4 دیسک در یک زمان پشتیبانی می کند.
    بنابراین، نمی توانید همه دیسک ها را یکجا اضافه کنید.

    ظرفیت HDD را 2 برابر بزرگتر از SSD انتخاب کنید.
    ظرفیت SSD 1,25 برابر بزرگتر از SSD قبلی است.

    4) یک دیسک ssd جدید اضافه کنید، آن را ssd4 نامید و پس از اضافه کردن، بررسی کنید که چه اتفاقی افتاده است:

    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

    5) اول از همه، شما باید از ایمنی داده های روی دیسک قدیمی مراقبت کنید.
    این بار با استفاده از LVM داده ها را منتقل می کنیم:

    • اول از همه، شما باید جدول فایل را از دیسک قدیمی به دیسک جدید کپی کنید:
      sfdisk -d /dev/XXX | sfdisk /dev/YYY

      دیسک های صحیح را با x,y جایگزین کنید و بفهمید که این دستور چه کاری انجام می دهد.

      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT را اجرا کنید و خروجی آن را با تماس قبلی مقایسه کنید.
      چه چیزی تغییر کرده است؟
      از دستور dd برای کپی کردن داده های /boot در دیسک جدید استفاده کنید

      dd if=/dev/XXX of=/dev/YYY

      اگر /boot روی دیسک قدیمی نصب شود، باید دوباره روی دیسک زنده نصب شود:

      mount | grep boot # смотрим куда смонтирован диск
      lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
      umount /boot # отмонтируем /boot
      mount -a # выполним монтирование всех точек согласно /etc/fstab. 
      # Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск

      بوت لودر را روی درایو ssd جدید نصب کنید

      grub-install /dev/YYY

      چرا این عمل را انجام می دهیم؟

      یک آرایه حمله جدید ایجاد کنید که فقط یک دیسک ssd جدید را شامل می شود:

      mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY

      دستور بالا بدون تعیین کلید ویژه کار نخواهد کرد.
      راهنما را بخوانید و این کلید را به دستور اضافه کنید.

      از دستور cat /proc/mdstat برای بررسی نتیجه عملیات خود استفاده کنید. چه چیزی تغییر کرده است؟
      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT را اجرا کنید و خروجی آن را با تماس قبلی مقایسه کنید.
      چه چیزی تغییر کرده است؟
      6) مرحله بعدی پیکربندی LVM است
      دستور pvs را برای مشاهده اطلاعات مربوط به حجم های فیزیکی فعلی اجرا کنید
      یک حجم فیزیکی جدید از جمله آرایه RAID ایجاد شده قبلی ایجاد کنید:

      pvcreate /dev/md63

      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT را اجرا کنید و خروجی آن را با تماس قبلی مقایسه کنید.
      چه چیزی تغییر کرده است؟
      دوباره دستور pvs را اجرا کنید. چه چیزی تغییر کرده است؟
      بیایید با استفاده از دستور زیر اندازه سیستم Volume Group را افزایش دهیم:

      vgextend system /dev/md63

      دستورات را اجرا کنید و آنچه را که دیدید و تغییر کرده بنویسید.

      vgdisplay system -v
      pvs
      vgs
      lvs -a -o+devices

      LV var,log,root در حال حاضر روی کدام دیسک فیزیکی قرار دارد؟

      با استفاده از نام‌های صحیح دستگاه، داده‌ها را از درایو قدیمی به درایو جدید منتقل کنید.

      pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63 

      عملیات را برای تمام حجم های منطقی تکرار کنید

      دستورات را اجرا کنید و آنچه را که دیدید و تغییر کرده بنویسید.

      vgdisplay system -v
      pvs
      vgs
      lvs -a -o+devices
      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

      بیایید VG خود را با حذف دیسک حمله قدیمی از آن تغییر دهیم. نام حمله صحیح را جایگزین کنید.

      vgreduce system /dev/md0

      دستورات را اجرا کنید و آنچه را که دیدید و تغییر کرده بنویسید.

      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
      pvs
      vgs

      برای زیباتر کردن تصویر، دوباره /boot را روی دیسک دوم ssd (ssd4) نصب کنید و lsblk را اجرا کنید. در نتیجه، دیسک ssd3 این کار را نمی کند
      هیچ چیز نباید نصب شود با دقت بررسی کنید که پارتیشن /boot خالی نباشد! ls /boot باید نشان دهد
      چندین فایل و پوشه موارد ذخیره شده در این بخش را مطالعه کنید و بنویسید کدام فهرست فایل مسئول چه چیزی است.
      7) دیسک ssd3 را حذف کنید و ssd5، hdd1، hdd2 را مطابق مشخصات فنی شرح داده شده در بالا اضافه کنید، در نتیجه:
      ssd4 - اولین ssd جدید
      ssd5 - دومین ssd جدید
      hdd1 - اولین hdd جدید
      hdd2 - دوم hdd جدید

      8) بررسی کنید بعد از افزودن دیسک چه اتفاقی افتاده است:

      fdisk -l
      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

      9) بیایید عملکرد آرایه حمله اصلی را بازیابی کنیم:

      • جدول پارتیشن را کپی کنید و دیسک های صحیح را جایگزین کنید:
        sfdisk -d /dev/XXX | sfdisk /dev/YYY
      • لطفا توجه داشته باشید که وقتی جدول پارتیشن را از دیسک قدیمی کپی کردیم، به نظر می رسید که اندازه جدید است
        از کل ظرفیت هارد استفاده نمی کند.
        بنابراین، به زودی باید اندازه این پارتیشن را تغییر دهیم و Raid را گسترش دهیم.
        خودتان با اجرای دستور ببینید:

        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        10) پارتیشن boot /boot را از ssd4 به ssd5 کپی کنید

        dd if=/dev/XXX of=/dev/YYY

        11) grub را روی درایو جدید (ssd5) نصب کنید
        12) اندازه پارتیشن دوم دیسک ssd5 را تغییر دهید

        ابزار پارتیشن بندی دیسک را اجرا کنید:

        fdisk /dev/XXX

        کلید d را برای حذف یک پارتیشن موجود وارد کنید (2 را انتخاب کنید)
        برای ایجاد یک پارتیشن جدید کلید n را وارد کنید
        کلید p را وارد کنید تا نشان دهید نوع پارتیشن اصلی است.
        کلید 2 را وارد کنید تا پارتیشن جدید شماره دوم را داشته باشد
        بخش اول: برای پذیرش اندازه محاسبه شده خودکار ابتدای پارتیشن، اینتر را فشار دهید
        آخرین بخش: برای پذیرش اندازه محاسبه شده خودکار انتهای پارتیشن، اینتر را فشار دهید
        کلید l را وارد کنید تا لیستی از انواع پارتیشن های ممکن را ببینید و Raid auto Linux را در آن پیدا کنید
        برای تغییر نوع پارتیشن ایجاد شده (2) کلید t را وارد کرده و عدد موجود در مرحله قبل را وارد کنید.
        برای نوشتن تغییر روی دیسک کلید w را وارد کنید.
        12) جدول پارتیشن را دوباره بخوانید و نتیجه را بررسی کنید

        partx -u /dev/XXX
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        یک دیسک جدید به آرایه حمله فعلی اضافه کنید (فراموش نکنید که دیسک های صحیح را جایگزین کنید)

        mdadm --manage /dev/md63 --add /dev/sda2

        بیایید تعداد دیسک های موجود در آرایه خود را به 2 افزایش دهیم:

        mdadm --grow /dev/md63 --raid-devices=2

        به نتیجه نگاه کنید: ما 2 آرایه علامت گذاری شده داریم، اما هر دو بخش موجود در این آرایه اندازه های متفاوتی دارند.

        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        13) اندازه پارتیشن را در دیسک ssd4 افزایش دهید

        ابزار پارتیشن بندی دیسک را اجرا کنید:

        fdisk /dev/XXX

        کلید d را برای حذف یک پارتیشن موجود وارد کنید (2 را انتخاب کنید)
        برای ایجاد یک پارتیشن جدید کلید n را وارد کنید
        کلید p را وارد کنید تا نشان دهید نوع پارتیشن اصلی است.
        کلید 2 را وارد کنید تا پارتیشن جدید شماره دوم را داشته باشد
        بخش اول: برای پذیرش اندازه محاسبه شده خودکار ابتدای پارتیشن، اینتر را فشار دهید
        آخرین بخش: برای پذیرش اندازه محاسبه شده خودکار انتهای پارتیشن، اینتر را فشار دهید
        در پایان نشانه گذاری، No را انتخاب کنید تا امضای پارتیشن متعلق به آرایه باقی بماند.
        برای نوشتن تغییر روی دیسک کلید w را وارد کنید.
        12) جدول پارتیشن را دوباره بخوانید و نتیجه را بررسی کنید

        partx -u /dev/XXX
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        لطفاً توجه داشته باشید که اکنون پارتیشن‌های sda2، sdc2 دارای اندازه‌ای بیشتر از اندازه دستگاه Raid هستند.

        13) در این مرحله اکنون می توان اندازه حمله را افزایش داد

        mdadm --grow /dev/md63 --size=max
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result

        lsblk را مرور کنید و توجه داشته باشید که چه چیزی تغییر کرده است
        14) با این حال، اگرچه ما اندازه حمله را تغییر دادیم، اندازه‌های خود vg root،var،log تغییر نکردند.

        • به اندازه PV نگاه کنید:
          pvs
        • بیایید اندازه PV خود را گسترش دهیم:
          pvresize /dev/md63
        • به اندازه PV نگاه کنید:
          pvs

          15) مکان تازه ظاهر شده VG var,root را اضافه کنید

          lvs # посмотрим сколько сейчас размечено
          lvextend -l +50%FREE /dev/system/root
          lvextend -l +100%FREE /dev/system/var
          lvs # проверьте что получилось

          در این مرحله، انتقال آرایه اصلی به دیسک های جدید را تکمیل کرده اید. کار با ssd1، ssd2 کامل شده است

          16) وظیفه بعدی ما انتقال /var/log به دیسک های جدید است، برای این کار یک آرایه و lvm جدید روی دیسک های hdd ایجاد می کنیم.

          • بیایید ببینیم درایوهای hdd جدید چه نام هایی دارند
            fdisk -l
          • بیایید یک آرایه حمله ایجاد کنیم
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • بیایید یک PV جدید در حمله از دیسک های بزرگ ایجاد کنیم
            pvcreate data /dev/md127
          • بیایید در این PV یک گروه به نام داده ایجاد کنیم
            vgcreate data /dev/md127
          • بیایید یک حجم منطقی با اندازه تمام فضای آزاد ایجاد کنیم و آن را val_log بنامیم
            lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
          • پارتیشن ایجاد شده را در ext4 فرمت کنید
            mkfs.ext4 /dev/mapper/data-var_log
          • نتیجه را ببینیم
            lsblk

            17) داده های گزارش را از پارتیشن قدیمی به پارتیشن جدید منتقل کنید

            به طور موقت یک ذخیره‌سازی گزارش جدید نصب کنید

            mount /dev/mapper/data-var_log /mnt

            بیایید پارتیشن ها را همگام سازی کنیم

            apt install rsync
            rsync -avzr /var/log/ /mnt/

            بیایید دریابیم که کدام فرآیندها در حال حاضر در /var/log در حال اجرا هستند

            apt install lsof
            lsof | grep '/var/log'

            این فرآیندها را متوقف کنید

            systemctl stop rsyslog.service syslog.socket

            انجام همگام سازی نهایی پارتیشن ها (داده هایی که ممکن است از آخرین همگام سازی تغییر کرده باشند)

            rsync -avzr /var/log/ /mnt/

            بخش ها را عوض کنید

            umount /mnt
            umount /var/log
            mount /dev/mapper/data-var_log /var/log

            بیایید بررسی کنیم چه اتفاقی افتاده است

            lsblk

            18) /etc/fstab را ویرایش کنید
            fstab - فایلی که قوانین نصب پارتیشن ها را در هنگام بوت ثبت می کند
            وظیفه ما این است که خطی را که /var/log در آن نصب شده است پیدا کنیم و دستگاه را تعمیر کنیم system-log بر data-var_log

            19) مهمترین چیز در این مرحله این است که تغییر جدول رادلا را فراموش نکنید (مثلاً ext4). چون مهم نیست هر raid، lvm را چگونه تغییر دهیم، تا زمانی که به FS روی پارتیشن اطلاع داده شود که اکنون اندازه پارتیشن تغییر کرده است، نمی‌توانیم از فضای جدید استفاده کنیم. از دستور استفاده کنید resize2fs برای تغییر FS

            20) وتر پایانی

            • بیایید راه اندازی مجدد کنیم. اگر همه چیز را به درستی انجام داده باشید، به سیستم عامل خود بازگردانده می شوید (این کار برای اطمینان از اینکه همه چیز کار می کند ضروری است. این مرحله معنایی جز خودآزمایی ندارد)
            • بررسی کنید که هر کاری که می‌خواستیم انجام دهیم واقعاً انجام شده است:
              pvs
              lvs
              vgs
              lsblk
              cat /proc/mdstat

            21) [اختیاری] مراحل را دنبال کنید

            • راه اندازی مجدد با فشار دادن F12 برای مشخص کردن درایوهای مختلف هنگام بوت کردن برای اطمینان از اینکه می توانید بوت کنید
              از هر یک از درایوهای ssd، به طوری که ما از خرابی یکی از آنها نمی ترسیم
            • اکنون شما لاگین LV غیر ضروری در سیستم VG دارید. این فاصله را بین root یا var اختصاص دهید، اما به جای استفاده
              طرح های 100% رایگان اندازه را با دست با استفاده از کلید -L مشخص کنید:

              -L 500M
            • رفع مشکل اینکه /boot روی دو پارتیشن بدون همگام سازی قرار دارد، نیازی به انجام صحیح این کار نیست.
              به عنوان مثال در اینجا اضافه شده است. فراموش نکنید که ابتدا محتویات /boot را در جایی کپی کنید.

              • یک Raid جدید ایجاد کنید و sda1,sda2 را در آن قرار دهید
              • این پارتیشن ها را در حمله موجود قرار دهید و /boot را به حمله اصلی بازگردانید، اما بدون نصب آن.

منبع: www.habr.com

اضافه کردن نظر