LVM เจ…เจคเฉ‡ Matryoshka เจตเจฟเฉฑเจš เจ•เฉ€ เจธเจฎเจพเจจ เจนเฉˆ?

เจคเฉเจนเจพเจกเจพ เจฆเจฟเจจ เจšเฉฐเจ—เจพ เจฒเฉฐเจ˜เฉ‡.
เจฎเฉˆเจ‚ md RAID + LVM เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ KVM เจฒเจˆ เจกเจพเจŸเจพ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฟเจธเจŸเจฎ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจ†เจชเจฃเจพ เจตเจฟเจนเจพเจฐเจ• เจ…เจจเฉเจญเจต เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจจเจพเจฒ เจธเจพเจ‚เจเจพ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค

เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃเจ—เฉ‡:

  • NVMe SSD เจคเฉ‹เจ‚ md RAID 1 เจฌเจฃเจพเจ‰เจฃเจพเฅค
  • SATA SSD เจ…เจคเฉ‡ เจจเจฟเจฏเจฎเจค เจกเจฐเจพเจˆเจตเจพเจ‚ เจคเฉ‹เจ‚ md RAID 6 เจจเฉ‚เฉฐ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เจฐเจจเจพเฅค
  • SSD RAID 1/6 'เจคเฉ‡ TRIM/DSCARD เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚เฅค
  • เจกเจฟเจธเจ• เจฆเฉ‡ เจ‡เฉฑเจ• เจ†เจฎ เจธเฉˆเฉฑเจŸ เจ‰เฉฑเจคเฉ‡ เจฌเฉ‚เจŸ เจนเฉ‹เจฃ เจฏเฉ‹เจ— md RAID 1/6 เจเจฐเฉ‡ เจฌเจฃเจพเจ‰เจฃเจพเฅค
  • NVMe RAID 1 เจ‰เฉฑเจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจœเจฆเฉ‹เจ‚ BIOS เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ NVMe เจธเจนเจฟเจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉˆเฅค
  • LVM เจ•เฉˆเจธเจผ เจ…เจคเฉ‡ LVM เจชเจคเจฒเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพเฅค
  • BTRFS เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ เจญเฉ‡เจœเฉ‹/เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เฅค
  • BTRFS เจธเจผเฉˆเจฒเฉ€ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ LVM เจชเจคเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจ…เจคเฉ‡ thin_delta เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพเฅค

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฌเจฟเฉฑเจฒเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹เฅค

เจฌเจฟเจ†เจจ

เจฒเฉ‡เจ–เจ• เจ‡เจธ เจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจธเจฎเฉฑเจ—เจฐเฉ€/เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚/เจ•เฉ‹เจก/เจธเฉเจเจพเจ…/เจกเจพเจŸเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจœเจพเจ‚ เจจเจพ เจ•เจฐเจจ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฒเจˆ เจ•เฉ‹เจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจฒเฉˆเจ‚เจฆเจพเฅค เจ‡เจธ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจชเฉœเฉเจน เจ•เฉ‡ เจœเจพเจ‚ เจตเจฐเจค เจ•เฉ‡, เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐเฉ€ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹เฅค เจธเฉฐเจญเจพเจตเฉ€ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเจจ:

  • เจ•เจฐเจฟเจธเจช-เจคเจฒเฉ‡ เจนเฉ‹เจ NVMe SSDsเฅค
  • เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจธเจฐเฉ‹เจค เจ…เจคเฉ‡ SSD เจกเจฐเจพเจˆเจตเจพเจ‚ เจฆเฉ€ เจ…เจธเจซเจฒเจคเจพ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจตเจฐเจคเฉ€ เจ—เจˆเฅค
  • เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจพเจชเฉ€เจ†เจ‚ เจธเจฎเฉ‡เจค เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ 'เจคเฉ‡ เจธเจพเจฐเฉ‡ เจกเจพเจŸเฉ‡ เจฆเจพ เจชเฉ‚เจฐเจพ เจจเฉเจ•เจธเจพเจจเฅค
  • เจจเฉเจ•เจธเจฆเจพเจฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐเฅค
  • เจธเจฎเจพเจ‚, เจจเจธเจพเจ‚ เจ…เจคเฉ‡ เจชเฉˆเจธเฉ‡ เจฆเฉ€ เจฌเจฐเจฌเจพเจฆเฉ€.
  • เจ•เฉ‹เจˆ เจตเฉ€ เจนเฉ‹เจฐ เจจเจคเฉ€เจœเฉ‡ เจœเฉ‹ เจ‰เฉฑเจชเจฐ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจจเจนเฉ€เจ‚ เจนเจจเฅค

เจ†เจ‡เจฐเจจ

เจ‰เจชเจฒเจฌเจง เจธเจจ:

Z2013 เจšเจฟเฉฑเจชเจธเฉˆเฉฑเจŸ เจฆเฉ‡ เจจเจพเจฒ เจฒเจ—เจญเจ— 87 เจคเฉ‹เจ‚ เจฎเจฆเจฐเจฌเฉ‹เจฐเจก, Intel Core i7 / Haswell เจจเจพเจฒ เจชเฉ‚เจฐเจพเฅค

  • เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ 4 เจ•เฉ‹เจฐ, 8 เจฅเจฐเจฟเฉฑเจก
  • 32 GB DDR3 เจฐเฉˆเจฎ
  • 1 x 16 เจœเจพเจ‚ 2 x 8 PCIe 3.0
  • 1 x 4 + 1 x 1 PCIe 2.0
  • 6 x 6 GBps SATA 3 เจ•เจจเฉˆเจ•เจŸเจฐ

SAS เจ…เจกเจพเจชเจŸเจฐ LSI SAS9211-8I IT/HBA เจฎเฉ‹เจก 'เจคเฉ‡ เจซเจฒเฉˆเจธเจผ เจนเฉ‹เจ‡เจ†เฅค RAID-เจธเจฎเจฐเฉฑเจฅ เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ HBA เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจจเจพเจฒ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ† เจนเฉˆ:

  1. เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจ…เจกเฉˆเจชเจŸเจฐ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฎเฉ‡เจ‚ เจฌเจพเจนเจฐ เจธเฉเฉฑเจŸ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฟเจธ เจจเฉ‚เฉฐ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฟเจ† เจธเฉ€เฅค
  2. TRIM/Discard เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจฟเจธเจ•เจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... RAID เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจตเจฟเฉฑเจš เจ‡เจน เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉ€เจ‚ เจนเจจ, เจ…เจคเฉ‡ HBA, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจ—เฉฑเจฒ เจฆเฉ€ เจชเจฐเจตเจพเจน เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจ•เจฟ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจนเจพเจฐเจก เจกเจฐเจพเจˆเจตเจพเจ‚ - 8 เจซเจพเจฐเจฎ เจซเฉˆเจ•เจŸเจฐ เจตเจฟเฉฑเจš 7 เจŸเฉ€เจฌเฉ€ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจตเจพเจฒเฉ‡ HGST Travelstar 1000K1 เจฆเฉ‡ 2.5 เจŸเฉเจ•เฉœเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฒเฉˆเจชเจŸเจพเจชเจพเจ‚ เจฒเจˆเฅค เจ‡เจน เจกเจฐเจพเจˆเจตเจพเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• RAID 6 เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจธเจจเฅค เจจเจตเฉ€เจ‚ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจตเจฟเจš เจ‡เจจเฉเจนเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจธเจฅเจพเจจเจ• เจฌเฉˆเจ•เจ…เฉฑเจช เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ.

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†:

6 เจŸเฉเจ•เฉœเฉ‡ SATA SSD เจฎเจพเจกเจฒ เจธเฉˆเจฎเจธเฉฐเจ— 860 QVO 2TB. เจ‡เจนเจจเจพเจ‚ SSD เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€, เจ‡เฉฑเจ• SLC เจ•เฉˆเจธเจผ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€, เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ˜เฉฑเจŸ เจ•เฉ€เจฎเจค เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค เจฐเฉฑเจฆ/เจœเจผเฉ€เจฐเฉ‹ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€, เจœเฉ‹ เจ•เจฟ dmesg เจตเจฟเฉฑเจš เจฒเจพเจˆเจจ เจฆเฉเจ†เจฐเจพ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ:

kernel: ata1.00: Enabling discard_zeroes_data

NVMe SSD เจฎเจพเจกเจฒ เจธเฉˆเจฎเจธเฉฐเจ— SSD 2 EVO 970GB เจฆเฉ‡ 500 เจŸเฉเจ•เฉœเฉ‡เฅค

เจ‡เจนเจจเจพเจ‚ SSDs เจฒเจˆ, เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจฒเจˆ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจชเฉœเฉเจนเจจ/เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ—เจคเฉ€ เจ…เจคเฉ‡ เจธเจฐเฉ‹เจค เจธเจฎเจฐเฉฑเจฅเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจฐเฉ‡เจกเฉ€เจเจŸเจฐ. เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡. เจฌเจฟเจฒเจ•เฉเจฒเฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจชเจนเจฟเจฒเฉ€ เจฐเฉ‡เจก เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฐเจฟเจธเจชเฉ€ เจนเฉ‹เจฃ เจคเฉฑเจ• เจซเฉเจฐเจพเจˆ เจ•เจฐเฉ‹เฅค

StarTech PEX8M2E2 เจ…เจกเจพเจชเจŸเจฐ 2 x NVMe SSD เจฒเจˆ PCIe 3.0 8x เจธเจฒเจพเจŸ เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน, เจฆเฉเจฌเจพเจฐเจพ, เจธเจฟเจฐเจซ เจ‡เฉฑเจ• HBA เจนเฉˆ, เจชเจฐ NVMe เจฒเจˆ. เจ‡เจน เจธเจธเจคเฉ‡ เจ…เจกเจพเจชเจŸเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจ–เจฐเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฟเจฒเจŸ-เจ‡เจจ PCIe เจธเจตเจฟเฉฑเจš เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ เจฎเจฆเจฐเจฌเฉ‹เจฐเจก เจคเฉ‹เจ‚ PCIe เจฌเจพเจ‡เจซเจฐเจ•เฉ‡เจธเจผเจจ เจธเจฎเจฐเจฅเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจน PCIe เจฆเฉ‡ เจจเจพเจฒ เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจฃเฉ‡ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ, เจญเจพเจตเฉ‡เจ‚ เจ‡เจน เจ‡เฉฑเจ• x1 PCIe 1.0 เจธเจฒเจพเจŸ เจนเฉ‹เจตเฉ‡เฅค เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‰เจšเจฟเจค เจ—เจคเฉ€ 'เจคเฉ‡. เจ‰เฉฑเจฅเฉ‡ เจ•เฉ‹เจˆ เจฐเฉ‡เจก เจจเจนเฉ€เจ‚ เจนเจจเฅค เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจ•เฉ‹เจˆ เจฌเจฟเจฒเจŸ-เจ‡เจจ BIOS เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจกเจพ เจธเจฟเจธเจŸเจฎ เจœเจพเจฆเฉ‚เจˆ เจขเฉฐเจ— เจจเจพเจฒ NVMe เจจเจพเจฒ เจฌเฉ‚เจŸ เจ•เจฐเจจเจพ เจจเจนเฉ€เจ‚ เจธเจฟเฉฑเจ–เฉ‡เจ—เจพ, เจ‡เจธ เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ NVMe RAID เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจนเฉˆเฅค

เจ‡เจน เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจฎเฉเจซเจผเจค 8x PCIe 3.0 เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ เจธเฉ€, เจ…เจคเฉ‡, เจœเฉ‡เจ•เจฐ 2 เจฎเฉเจซเจผเจค เจธเจฒเจพเจŸ เจนเจจ, เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจฆเฉ‹ เจชเฉˆเจจเฉ€ PEX4M2E1 เจœเจพเจ‚ เจเจจเจพเจฒเจพเจ— เจจเจพเจฒ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 600 เจฆเฉ€ เจ•เฉ€เจฎเจค 'เจคเฉ‡ เจ•เจฟเจคเฉ‡ เจตเฉ€ เจ–เจฐเฉ€เจฆเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจฐเฉ‚เจฌเจฒ

เจนเจฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจœเจพเจ‚ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจšเจฟเฉฑเจชเจธเฉˆเฉฑเจŸ/BIOS เจฐเฉ‡เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจจเจพ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚ เจœเฉ‹ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, SSD/HDD เจฆเฉ‡ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจจเจพเจฒ, เจชเฉ‚เจฐเฉ‡ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฌเจฆเจฒเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เฉ‡เฅค เจ†เจฆเจฐเจธเจผเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจตเฉ‡เจ‚/เจตเฉฑเจ–เจฐเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจœเจพเจฃ เจตเฉ‡เจฒเฉ‡ เจธเจฅเจพเจชเจค เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจตเฉ€ เจฌเจšเจพ เจธเจ•เฉ‹เฅค เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ SATA เจ…เจคเฉ‡ PCIe เจชเฉ‹เจฐเจŸ เจนเจจ. เจ‡เจน เจ‡เฉฑเจ• เจฒเจพเจˆเจต เจธเฉ€เจกเฉ€ เจœเจพเจ‚ เจฌเฉ‚เจŸ เจนเฉ‹เจฃ เจฏเฉ‹เจ— เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจตเจฐเจ—เจพ เจนเฉˆ, เจธเจฟเจฐเจซ เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจ…เจคเฉ‡ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจญเจพเจฐเฉ€เฅค

เจนเจพเจธเฉ‡เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เฉ€ เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจ•เจˆ เจตเจพเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจ†เจชเจฃเฉ‡ เจจเจพเจฒ เจชเฉ‚เจฐเฉ€ เจเจฐเฉ‡ เจฒเฉˆ เจ•เฉ‡ เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจชเจฐ เจฎเฉˆเจ‚ เจกเจพเจŸเจพ เจ—เฉเจ†เจ‰เจฃเจพ เจจเจนเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเจพเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจฐเฉ‡ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ‡ เจฎเฉ€เจกเฉ€เจ† เจฎเจฟเจ†เจฐเฉ€ เจ•เฉ‡เจธ เจฆเฉ‡ 5.25 เจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจฒเจพเจˆเจกเจพเจ‚ 'เจคเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจคเฉŒเจฐ' เจคเฉ‡ เจธเจฅเจฟเจค เจนเจจ.

เจ–เฉˆเจฐ, เจ…เจคเฉ‡, เจฌเฉ‡เจธเจผเจ•, เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš SSD เจ•เฉˆเจšเจฟเฉฐเจ— เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจจ เจฒเจˆ.

เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ›เจพเจชเฉ‡ เจฌเฉ‹เจฐเจฟเฉฐเจ— เจนเจจ. เจ‡เจธเจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹เฅค เจ‡เจน เจœเจพเจ‚ เจคเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจพเจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ. เจ…เจคเฉ‡ mdadm เจจเจพเจฒ เจนเจฎเฉ‡เจธเจผเจพ เจตเจฟเจ•เจฒเจช เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค

เจธเฉŒเจซเจŸ

เจชเจนเจฟเจฒเจพเจ‚, เจกเฉ‡เจฌเฉ€เจ…เจจ 8 เจœเฉˆเจธเฉ€ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจˆเจ“เจเจฒ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉˆเฅค RAID 6 เจจเฉ‚เฉฐ LVM เจจเจพเจฒ เจœเฉ‹เฉœเฉ€ เจ‰เจชเจฐเฉ‹เจ•เจค HDDs เจคเฉ‹เจ‚ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจน kvm/libvirt เจตเจฟเฉฑเจš เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฒเฉ‡เจ–เจ• เจจเฉ‚เฉฐ เจชเฉ‹เจฐเจŸเฉ‡เจฌเจฒ เจฌเฉ‚เจŸ เจนเฉ‹เจฃ เจฏเฉ‹เจ— SATA/NVMe เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจตเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจขเฉเจ•เจตเจพเจ‚ เจคเจœเจฐเจฌเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจจเจพเจฒ เจนเฉ€, เจ†เจฎ เจเจชเจŸ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจจเฉ‚เฉฐ เจจเจพ เจคเฉ‹เฉœเจจ เจฒเจˆ, เจ‰เจฌเฉฐเจŸเฉ‚ 18.04 เจจเฉ‚เฉฐ เจŸเจพเจฐเจ—เฉ‡เจŸ เจธเจฟเจธเจŸเจฎ เจตเจœเฉ‹เจ‚ เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจพเจซเฉ€ เจธเจฅเจฟเจฐ เจนเฉ‹ เจšเฉเฉฑเจ•เจพ เจนเฉˆ, เจชเจฐ เจ…เจœเฉ‡ เจตเฉ€ 3 เจธเจพเจฒ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆเฅค เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจธเจนเจพเจ‡เจคเจพ.

เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‰เจน เจธเจพเจฐเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจกเฉเจฐเจพเจˆเจตเจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเฉ€ เจธเจพเจจเฉ‚เฉฐ เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจคเฉ€เจœเฉ€-เจงเจฟเจฐ เจฆเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจœเจพเจ‚ เจกเจฐเจพเจˆเจตเจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฒเจˆ เจคเจฟเจ†เจฐเฉ€ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจ‰เจฌเฉฐเจŸเฉ‚ เจกเฉˆเจธเจ•เจŸเจพเจช เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจฐเจตเจฐ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเจพ เจœเฉ‹เจฐเจฆเจพเจฐ เจ‡เฉฐเจธเจŸเจพเจฒเจฐ เจนเฉˆ, เจœเฉ‹ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเฉเจคเฉฐเจคเจฐเจคเจพ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เจฟ UEFI เจธเจฟเจธเจŸเจฎ เจญเจพเจ— เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเจฟเจธเจ• เจ‰เฉฑเจคเฉ‡ เจนเจฟเจฒเจพ เจ•เฉ‡, เจธเจพเจฐเฉ€ เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเฉ‚เฉฐ เจตเจฟเจ—เจพเฉœ เจ•เฉ‡ เจ…เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ…เจจเฉเจธเจพเจฐ, เจ‡เจน เจธเจฟเจฐเจซ UEFI เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจนเฉˆเฅค เจ•เฉ‹เจˆ เจตเจฟเจ•เจฒเจช เจชเฉ‡เจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค

เจ…เจธเฉ€เจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ–เฉเจธเจผ เจจเจนเฉ€เจ‚ เจนเจพเจ‚เฅค

เจ•เจฟเจ‰เจ‚?เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, UEFI เจฌเฉ‚เจŸ เจฌเฉ‚เจŸ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฐเฉ‡เจก เจจเจพเจฒ เจฌเจนเฉเจค เจฎเจพเฉœเจพ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจ•เฉ‹เจˆ เจตเฉ€ เจธเจพเจจเฉ‚เฉฐ UEFI ESP เจญเจพเจ— เจฒเจˆ เจฐเจฟเจœเจผเจฐเจตเฉ‡เจธเจผเจจ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ”เจจเจฒเจพเจˆเจจ เจชเจ•เจตเจพเจจเจพ เจนเจจ เจœเฉ‹ เจ‡เฉฑเจ• USB เจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจคเฉ‡ ESP เจญเจพเจ— เจฐเฉฑเจ–เจฃ เจฆเจพ เจธเฉเจเจพเจ… เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ‡เจน เจ…เจธเจซเจฒเจคเจพ เจฆเจพ เจ‡เฉฑเจ• เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉˆ. เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจธเฉฐเจธเจ•เจฐเจฃ 1 เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ mdadm RAID 0.9 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจชเจ•เจตเจพเจจเจพเจ‚ เจนเจจ เจœเฉ‹ UEFI BIOS เจจเฉ‚เฉฐ เจ‡เจธ เจญเจพเจ— เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจฐเฉ‹เจ•เจฆเฉ€เจ†เจ‚, เจชเจฐ เจ‡เจน เจ–เฉเจธเจผเฉ€ เจฆเฉ‡ เจชเจฒ เจคเฉฑเจ• เจฐเจนเจฟเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ BIOS เจœเจพเจ‚ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ OS ESP เจจเฉ‚เฉฐ เจ•เฉเจ เจฒเจฟเจ–เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจเจพ เจญเฉเฉฑเจฒ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจธเจผเฉ€เจธเจผเฉ‡

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, UEFI เจฌเฉ‚เจŸ NVRAM 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจจเจตเฉ‡เจ‚ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจตเฉ‡เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเจฆเจฐเจฌเฉ‹เจฐเจก เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจชเจนเฉ€เจ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ€, เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เฉ€เจคเฉ‡ เจฆเจพเจฆเจพ เจฆเฉ€ เจฌเจพเจˆเจ• เจนเฉˆ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจนเฉเจฃ เจฒเฉ€เจ—เฉ‡เจธเฉ€/BIOS เจฌเฉ‚เจŸ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, UEFI-เจ…เจจเฉเจ•เฉ‚เจฒ เจธเจฟเจธเจŸเจฎเจพเจ‚ 'เจคเฉ‡ CSM เจฆเจพ เจฎเจพเจฃ เจตเจพเจฒเจพ เจจเจพเจฎ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจผเฉˆเจฒเจซ เจคเฉ‹เจ‚ เจ‰เจคเจพเจฐ เจฒเจตเจพเจ‚เจ—เฉ‡, เจ‡เจธเจจเฉ‚เฉฐ เจฒเฉเจฌเจฐเฉ€เจ•เฉ‡เจŸ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจŸเจพเจ‡เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉฐเจช เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฟเฉฑเจฒเฉเจนเฉ‡ เจ•เฉฑเจชเฉœเฉ‡ เจจเจพเจฒ เจชเฉ‚เฉฐเจเจพเจ‚เจ—เฉ‡เฅค

เจ‰เจฌเฉฐเจŸเฉ‚ เจฆเจพ เจกเฉˆเจธเจ•เจŸเฉŒเจช เจธเฉฐเจธเจ•เจฐเจฃ เจตเฉ€ เจฒเฉ€เจ—เฉ‡เจธเฉ€ เจฌเฉ‚เจŸเจฒเฉ‹เจกเจฐ เจจเจพเจฒ เจธเจนเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฅเจพเจชเจฟเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจฅเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจตเจฟเจ•เจฒเจช เจนเจจ.

เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ‰เจฌเฉฐเจŸเฉ‚ เจฒเจพเจˆเจต เจฌเฉ‚เจŸ เจนเฉ‹เจฃ เจฏเฉ‹เจ— เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจคเฉ‹เจ‚ เจฒเฉ‹เจก เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจพเจจเฉ‚เฉฐ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจœเฉ‡เจ•เจฐ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจ‰เฉฑเจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ…เจธเฉ€เจ‚ เจกเฉˆเจธเจ•เจŸเฉŒเจช เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจœเจพเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจœเจพเจ‚เจฆเฉ‡ เจนเจพเจ‚:

#sudo bash

เจ•เจฟเจตเฉ‡เจ‚โ€ฆ?เจ‰เจชเจฐเฉ‹เจ•เจค เจฒเจพเจˆเจจ เจธเฉ‚เจกเฉ‹ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฒเฉ€เจตเจพเจฐเจพเจ‚ เจฒเจˆ เจ•เฉˆเจจเฉ‹เจจเฉ€เจ•เจฒ เจŸเจฐเจฟเฉฑเจ—เจฐ เจนเฉˆเฅค เจธเฉ€ เจฌเฉ€ะพเจตเจงเฉ‡เจฐเฉ‡ เจฎเฉŒเจ•เฉ‡ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ะพเจตเฉฑเจง เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐเฉ€. เจธเจตเจพเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช 'เจคเฉ‡ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเฉ‹. เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฒเฉ‹เจ• เจธเฉ‹เจšเจฆเฉ‡ เจนเจจ เจ•เจฟ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจธเฉ‚เจกเฉ‹ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจธเจพเจตเจงเจพเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจนเจพเจฒเจพเจ‚เจ•เจฟ:

#apt-get install mdadm lvm2 thin-provisioning-tools btrfs-tools util-linux lsscsi nvme-cli mc

ZFS เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚...?เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‰เจงเจพเจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค
เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฆเฉ‡ เจจเจพเจฒ เจ‡เจธ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเจพเจ—เจค เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจ•เจฐเจœเจผเจพ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธเจฆเจพ เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจฆเจฟเจจ เจญเฉเจ—เจคเจพเจจ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค

เจ‡เจธ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚, ZFS เจ‡เฉฑเจ• เจซเฉ‡เจฐเจพเจฐเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ mdadm+lvm เจ‡เฉฑเจ• เจธเจพเจˆเจ•เจฒ เจตเจฐเจ—เจพ เจนเฉˆเฅค

เจตเจฟเจธเจผเจพ-เจตเจธเจคเฉ‚, เจฒเฉ‡เจ–เจ• เจซเฉ‡เจฐเจพเจฐเฉ€ เจฆเฉ€ เจฌเจœเจพเจ เจ…เจฃเจœเจพเจฃ เจตเจฟเจ…เจ•เจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เฉเจฐเฉˆเจกเจฟเจŸ 'เจคเฉ‡ เจธเจพเจˆเจ•เจฒ เจฆเฉ‡เจฃ เจจเฉ‚เฉฐ เจคเจฐเจœเฉ€เจน เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ‰เฉฑเจฅเฉ‡, เจฎเฉเฉฑเจฆเฉ‡ เจฆเฉ€ เจ•เฉ€เจฎเจค เจœเจผเจฟเจ†เจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚เฅค เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเจฟเจฏเจฎเจพเจ‚ เจจเจพเจฒเฉ‹เจ‚ เจธเจฐเจฒเฅค เจชเจพเจฐเจ•เจฟเฉฐเจ— เจฎเฉเจซเจผเจค เจนเฉˆเฅค เจ•เจฐเจพเจธ-เจ•เฉฐเจŸเจฐเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจฌเจฟเจนเจคเจฐ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจธเจพเจˆเจ•เจฒ เจจเจพเจฒ เจฒเฉฑเจคเจพเจ‚ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจธเจพเจˆเจ•เจฒ เจฆเฉ€ เจฎเฉเจฐเฉฐเจฎเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹.

เจซเจฟเจฐ BTRFS เจ•เจฟเจ‰เจ‚...?เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเฉ‹ เจฒเฉ€เจ—เฉ‡เจธเฉ€/BIOS GRUB เจตเจฟเฉฑเจš เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจพเจˆเจต เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ /boot เจญเจพเจ— เจฒเจˆ เจตเจฐเจคเจพเจ‚เจ—เฉ‡เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฒเฉ‡เจ–เจ• เจ‡เจธ FS เจจเฉ‚เฉฐ / (เจฐเฉ‚เจŸ) เจฒเจˆ เจตเจฐเจคเจฃเจพ เจชเจธเฉฐเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจจเฉ‹เจŸ เจ•เจฐเจจเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ‹ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจฒเจˆ เจคเฉเจธเฉ€เจ‚ LVM เจ‰เฉฑเจคเฉ‡ เจตเฉฑเจ–เจฐเฉ‡ เจญเจพเจ— เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฎเจพเจŠเจ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ…เจธเฉ€เจ‚ เจ‡เจธ FS 'เจคเฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจœเจพเจ‚ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฆเฉ€เจ†เจ‚ เจ•เฉ‹เจˆ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจธเจŸเฉ‹เจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค
เจ‡เจธ FS เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจนเจจเจพเจ‚ เจธเจจเฉˆเจชเจธเจผเจพเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ‹/เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจกเจฟเจธเจ• 'เจคเฉ‡ เจŸเฉเจฐเจพเจ‚เจธเจซเจผเจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฒเฉ‡เจ–เจ• เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฐเฉฑเจ–เจฃ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเจพเจฐเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‰เจฃเจพ เจชเจธเฉฐเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ GPUs เจ…เจคเฉ‡ PCI-USB เจนเฉ‹เจธเจŸ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐเจพเจ‚ เจจเฉ‚เฉฐ IOMMU เจฐเจพเจนเฉ€เจ‚ KVM เจจเฉ‚เฉฐ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃเจพเฅค

เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจฌเจšเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจนเจจ เจกเจพเจŸเจพ เจธเจŸเฉ‹เจฐเฉ‡เจœ, เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจชเฅค

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ ZFS 'เจคเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚, เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจจเจฟเจฐเจงเจพเจฐเจค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ เจ‰เจน เจชเจฐเจฟเจตเจฐเจคเจจเจฏเฉ‹เจ— เจนเจจเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฒเฉ‡เจ–เจ• เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจฎเจฟเจฐเจฐเจฟเฉฐเจ—/RAID เจ…เจคเฉ‡ เจฐเจฟเจกเฉฐเจกเฉˆเจ‚เจธเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ ZFS, BRTFS เจ…เจคเฉ‡ LVM เจ•เฉ‹เจฒ เจนเจจเฅค

เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจฆเจฒเฉ€เจฒ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, BTRFS เจ•เฉ‹เจฒ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฒเจฟเจ–เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจตเจพเจฐ เจฒเจฟเจ–เจคเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจนเฉˆ, เจœเจฟเจธเจฆเจพ HDD 'เจคเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ/เจฌเฉˆเจ•เจ…เฉฑเจชเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจฆเฉ€ เจ—เจคเฉ€ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจ•เจพเจฐเจพเจคเจฎเจ• เจชเฉเจฐเจญเจพเจต เจชเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค

เจ†เจ‰ เจธเจพเจฐเฉ‡ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจ•เฉˆเจจ เจ•เจฐเฉ€เจ:

#udevadm control --reload-rules && udevadm trigger

เจ†เจ‰ เจ†เจฒเฉ‡ เจฆเฉเจ†เจฒเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจ:

#lsscsi && nvme list
[0:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sda
[1:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdb
[2:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdc
[3:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdd
[4:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sde
[5:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdf
[6:0:0:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdg
[6:0:1:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdh
[6:0:2:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdi
[6:0:3:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdj
[6:0:4:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdk
[6:0:5:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdl
[6:0:6:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdm
[6:0:7:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdn
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S466NXXXXXXX15L Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7
/dev/nvme1n1 S5H7NXXXXXXX48N Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7

เจกเจฟเจธเจ• เจฒเฉ‡เจ†เจ‰เจŸ

NVMe SSD

เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจธเจญ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเจพ, เจธเจพเจกเจพ BIOS เจ‡เจนเจจเจพเจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเจพ. เจ‡เจธ เจฒเจˆ, เจ‰เจน เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจฐเฉ‡เจก 'เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจธเฉˆเจ•เจธเจผเจจ เจตเฉ€ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ "เจ•เฉˆเจจเจจ" เจœเจพเจ‚ "เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡" เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจกเจพ เจญเจพเจ— เจฌเจฃเจพเจ“, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• HDDเฅค

SATA HDD

เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจ–เจพเจธ เจ•เจพเจข เจ•เฉฑเจขเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจนเจฐ เจšเฉ€เจœเจผ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจญเจพเจ— เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ BIOS เจ‡เจนเจจเจพเจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจนเจจเจพเจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจ‰เฉฑเจคเฉ‡ GRUB เจตเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจคเจพเจ‚ เจœเฉ‹ เจธเจฟเจธเจŸเจฎ เจ…เจšเจพเจจเจ• เจ…เจœเจฟเจนเจพ เจ•เจฐ เจธเจ•เฉ‡เฅค

#cat >hdd.part << EOF
label: dos
label-id: 0x00000000
device: /dev/sdg
unit: sectors

/dev/sdg1 : start= 2048, size= 1953523120, type=fd, bootable
EOF
#sfdisk /dev/sdg < hdd.part
#sfdisk /dev/sdh < hdd.part
#sfdisk /dev/sdi < hdd.part
#sfdisk /dev/sdj < hdd.part
#sfdisk /dev/sdk < hdd.part
#sfdisk /dev/sdl < hdd.part
#sfdisk /dev/sdm < hdd.part
#sfdisk /dev/sdn < hdd.part

SATA SSD

เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจšเฉ€เจœเจผเจพเจ‚ เจธเจพเจกเฉ‡ เจฒเจˆ เจฆเจฟเจฒเจšเจธเจช เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ.

เจชเจนเจฟเจฒเจพเจ‚, เจธเจพเจกเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจฆเจพ เจ†เจ•เจพเจฐ 2 เจŸเฉ€เจฌเฉ€ เจนเฉˆเฅค เจ‡เจน MBR เจฒเจˆ เจธเจตเฉ€เจ•เจพเจฐเจฏเฉ‹เจ— เจธเฉ€เจฎเจพ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเฉˆ, เจœเจฟเจธเจฆเฉ€ เจ…เจธเฉ€เจ‚ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจœเฉ‡ เจœเจฐเฉ‚เจฐเฉ€ เจนเฉ‹เจตเฉ‡, GPT เจจเจพเจฒ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. GPT เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจชเจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ MBR-เจ…เจจเฉเจ•เฉ‚เจฒ เจธเจฟเจธเจŸเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ‡ 4 เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‰เจน เจชเจนเจฟเจฒเฉ‡ 2 เจŸเฉˆเจฐเจพเจฌเจพเจˆเจŸ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจฅเจฟเจค เจนเจจเฅค เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจนเจจเจพเจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจฌเฉ‚เจŸ เจญเจพเจ— เจ…เจคเฉ‡ bios_grub เจญเจพเจ— เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ GPT Legacy/BIOS เจกเจฐเจพเจˆเจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจตเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจชเจฐ เจ‡เจน เจธเจพเจกเจพ เจฎเจพเจฎเจฒเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจฆเฉ‹ เจญเจพเจ— เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจชเจนเจฟเจฒเฉ‡ เจฆเจพ เจ†เจ•เจพเจฐ 1 GB เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ RAID 1 /boot เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฆเฉ‚เจธเจฐเจพ RAID 6 เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจกเจฐเจพเจˆเจต เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ‡ เจ…เจฃ-เจ…เจฒเจพเจŸ เจ•เฉ€เจคเฉ‡ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ เจฌเจพเจ•เฉ€ เจฌเจšเฉ€ เจธเจพเจฐเฉ€ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฒเฉˆ เจฒเจตเฉ‡เจ—เจพเฅค

เจ‡เจน เจ…เจฃ-เจจเจฟเจธเจผเจพเจจเจฟเจค เจ–เฉ‡เจคเจฐ เจ•เฉ€ เจนเฉˆ?เจจเฉˆเฉฑเจŸเจตเจฐเจ• 'เจคเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจธเจพเจกเฉ‡ SATA SSDs เจตเจฟเฉฑเจš 6 เจคเฉ‹เจ‚ 78 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฟเจธเจคเจพเจฐเจฏเฉ‹เจ— SLC เจ•เฉˆเจธเจผ เจนเฉˆเฅค เจกเจฐเจพเจˆเจต เจฆเฉ€ เจกเฉ‡เจŸเจพ เจธเจผเฉ€เจŸ เจตเจฟเฉฑเจš "เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ" เจ…เจคเฉ‡ "เจ—เฉ€เจฌเฉ€เจฌเจพเจˆเจŸเจธ" เจตเจฟเฉฑเจš เจ…เฉฐเจคเจฐ เจฆเฉ‡ เจ•เจพเจฐเจจ เจธเจพเจจเฉ‚เฉฐ 6 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ "เจฎเฉเจซเจผเจค เจตเจฟเฉฑเจš" เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจฌเจพเจ•เฉ€ 72 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจ…เจฃเจตเจฐเจคเฉ€ เจฅเจพเจ‚ เจคเฉ‹เจ‚ เจ…เจฒเจพเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค

เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• SLC เจ•เฉˆเจธเจผ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจชเฉ‡เจธ 4 เจฌเจฟเฉฑเจŸ MLC เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจนเฉˆเฅค เจœเจฟเจธเจฆเจพ เจธเจพเจกเฉ‡ เจฒเจˆ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจนเจฐ 4 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ 1 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ SLC เจ•เฉˆเจธเจผ เจฎเจฟเจฒเฉ‡เจ—เจพเฅค

72 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจจเฉ‚เฉฐ 4 เจจเจพเจฒ เจ—เฉเจฃเจพ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ 288 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เฅค เจ‡เจน เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเจธ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจกเฉเจฐเจพเจˆเจต เจจเฉ‚เฉฐ SLC เจ•เฉˆเจธเจผ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจฃ เจฒเจˆ เจจเจฟเจธเจผเจพเจจเจฌเฉฑเจง เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ•เฉเฉฑเจฒ เจ›เฉ‡ เจกเจฐเจพเจˆเจตเจพเจ‚ เจคเฉ‹เจ‚ 312 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจคเฉฑเจ• SLC เจ•เฉˆเจธเจผ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚, 2 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฐเจฟเจกเฉฐเจกเฉˆเจ‚เจธเฉ€ เจฒเจˆ RAID เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจ•เฉˆเจธเจผ เจฆเฉ€ เจ‡เจน เจฎเจพเจคเจฐเจพ เจธเจพเจจเฉ‚เฉฐ เจ…เจธเจฒ เจœเฉ€เจตเจจ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจนเฉ€ เจ…เจœเจฟเจนเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจฒเจฟเจ–เจค เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเฉ€. เจ‡เจน QLC เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจธเจญ เจคเฉ‹เจ‚ เจฆเฉเจ–เจฆเจพเจˆ เจ•เจฎเฉ€ เจฒเจˆ เจฌเจนเฉเจค เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฎเฉเจ†เจตเจœเจผเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ - เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ—เจคเฉ€ เจœเจฆเฉ‹เจ‚ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจ•เฉ‡ เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจนเจพเจกเจพ เจฒเฉ‹เจก เจ‡เจธ เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพ, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจธเจ–เจผเจค เจธเฉ‹เจšเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจกเจพ SSD เจ…เจœเจฟเจนเฉ‡ เจฒเฉ‹เจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจ•เจฟเฉฐเจจเจพ เจธเจฎเจพเจ‚ เจฐเจนเฉ‡เจ—เจพ, เจกเฉ‡เจŸเจพ เจธเจผเฉ€เจŸ เจคเฉ‹เจ‚ TBW เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ.

#cat >ssd.part << EOF
label: dos
label-id: 0x00000000
device: /dev/sda
unit: sectors

/dev/sda1 : start= 2048, size= 2097152, type=fd, bootable
/dev/sda2 : start= 2099200, size= 3300950016, type=fd
EOF
#sfdisk /dev/sda < ssd.part
#sfdisk /dev/sdb < ssd.part
#sfdisk /dev/sdc < ssd.part
#sfdisk /dev/sdd < ssd.part
#sfdisk /dev/sde < ssd.part
#sfdisk /dev/sdf < ssd.part

เจเจฐเฉ‡ เจฌเจฃเจพเจ‰เจฃเจพ

เจชเจนเจฟเจฒเจพเจ‚, เจธเจพเจจเฉ‚เฉฐ เจฎเจธเจผเฉ€เจจ เจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจนเฉ‹เจธเจŸ เจจเจพเจฎ mdadm เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เจฟเจคเฉ‡ เจเจฐเฉ‡ เจจเจพเจฎ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฟเจคเฉ‡ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจเจฐเฉ‡ เจฆเจพ เจจเจพเจฎ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจฌเฉ‡เจฒเฉ‹เฉœเจพ เจ•เจฆเจฎ เจนเฉˆเฅค

#mcedit /etc/hostname
#mcedit /etc/hosts
#hostname
vdesk0

NVMe SSD

#mdadm --create --verbose --assume-clean /dev/md0 --level=1 --raid-devices=2 /dev/nvme[0-1]n1

เจ•เจฟเจ‰เจ‚ -เจธเจฎเจเฉ‹ -เจธเจพเจซเจผ...?เจเจฐเฉ‡ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฒเจˆเฅค RAID เจชเฉฑเจงเจฐ 1 เจ…เจคเฉ‡ 6 เจฆเฉ‹เจตเจพเจ‚ เจฒเจˆ เจ‡เจน เจตเฉˆเจง เจนเฉˆเฅค เจนเจฐ เจšเฉ€เจœเจผ เจฌเจฟเจจเจพเจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‡เจน เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจเจฐเฉ‡ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเจฟเจฐเจœเจฃ 'เจคเฉ‡ SSD เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ TBW เจธเจฐเฉ‹เจค เจฆเฉ€ เจฌเจฐเจฌเจพเจฆเฉ€ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ "เจธเจผเฉเจฐเฉ‚" เจ•เจฐเจจ เจฒเจˆ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เฉ€เจคเฉ‡ SSD เจเจฐเฉ‡ 'เจคเฉ‡ เจœเจฟเฉฑเจฅเฉ‡ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡ TRIM/DISCARD เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

SSD เจเจฐเฉ‡ เจฒเจˆ, RAID 1 เจกเจฟเจธเจ•เจพเจฐเจก เจฌเจพเจ•เจธ เจฆเฉ‡ เจฌเจพเจนเจฐ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค

SSD RAID 6 เจกเจฟเจธเจ•เจพเจฐเจก เจเจฐเฉ‡ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฏเฉ‹เจ— เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจ•เฉ‡เจตเจฒ เจคเจพเจ‚ เจนเฉ€ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‡เจธ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจฒเฉˆเจตเจฒ 4/5/6 เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ SSDs เจตเจฟเฉฑเจš discard_zeroes_data เจฒเจˆ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเจฎเจฐเจฅเจจ เจนเฉˆเฅค เจ•เจˆ เจตเจพเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเฉ€เจฌ เจกเจฐเจพเจˆเจตเจพเจ‚ เจฎเจฟเจฒเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‹ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจ‡เจน เจซเฉฐเจ•เจธเจผเจจ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ, เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจน เจ‰เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจœเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจ เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจธเจฎเฉ‡เจ‚, เจธเจฎเจฐเจฅเจจ เจฒเจ—เจญเจ— เจนเจฐ เจœเจ—เฉเจนเจพ เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจชเฉเจฐเจพเจฃเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจ…เจคเฉ‡ เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจนเจจ. เจ‡เจธ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡, RAID 6 เจฒเจˆ เจกเจฟเจธเจ•เจพเจฐเจก เจธเจฎเจฐเจฅเจจ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจนเฉˆเฅค

เจงเจฟเจ†เจจ เจฆเจฟเจ“, เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก NVMe เจกเจฐเจพเจˆเจตเจพเจ‚ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ "เจœเจผเฉ€เจฐเฉ‹" เจจเจพเจฒ เจเจฐเฉ‡ เจจเฉ‚เฉฐ "เจธเจผเฉเจฐเฉ‚" เจ•เจฐเจ•เฉ‡ เจจเจธเจผเจŸ เจ•เจฐ เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค

#blkdiscard /dev/md0

เจœเฉ‡เจ•เจฐ เจ•เฉเจ เจ—เจฒเจค เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจชเฉœเจพเจ… เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹เฅค

#blkdiscard --step 65536 /dev/md0

SATA SSD

#mdadm --create --verbose --assume-clean /dev/md1 --level=1 --raid-devices=6 /dev/sd[a-f]1
#blkdiscard /dev/md1
#mdadm --create --verbose --assume-clean /dev/md2 --chunk-size=512 --level=6 --raid-devices=6 /dev/sd[a-f]2

เจ‡เฉฐเจจเจพ เจตเฉฑเจกเจพ เจ•เจฟเจ‰เจ‚...?เจšเฉฐเจ•-เจธเจพเจˆเจœเจผ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจจเจพเจฒ เจšเฉฐเจ•-เจธเจพเจˆเจœเจผ เจคเฉฑเจ• เจฆเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฐเฉ€เจกเจฟเฉฐเจ— เจฆเฉ€ เจ—เจคเฉ€ 'เจคเฉ‡ เจธเจ•เจพเจฐเจพเจคเจฎเจ• เจชเฉเจฐเจญเจพเจต เจชเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ‡เจธ เจฒเจˆ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจขเฉเจ•เจตเฉ‡เจ‚ เจ†เจ•เจพเจฐ เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเฉ‡ เจฆเจพ เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจธเจผเจจ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ‡เฉฑเจ• เจกเจฟเจตเจพเจˆเจธ 'เจคเฉ‡ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฒเจˆ, เจธเจพเจฐเฉ‡ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจคเฉ‹เจ‚ IOPS เจจเฉ‚เฉฐ เจธเฉฐเจ–เฉ‡เจช เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ…เฉฐเจ•เฉœเจฟเจ†เจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, IO เจฆเจพ 99% 512K เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจนเฉ€เจ‚ เจนเฉˆ.

RAID 6 IOPS เจชเฉเจฐเจคเฉ€ เจฒเจฟเจ–เจค เจนเจฎเฉ‡เจธเจผเจพ เจ‡เฉฑเจ• เจกเจฐเจพเจˆเจต เจฆเฉ‡ IOPS เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจœเจพเจ‚ เจฌเจฐเจพเจฌเจฐเฅค เจœเจฆเฉ‹เจ‚, เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฐเฉ€เจก เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, IOPS เจ‡เฉฑเจ• เจกเจฐเจพเจˆเจต เจจเจพเจฒเฉ‹เจ‚ เจ•เจˆ เจ—เฉเจฃเจพ เจตเฉฑเจกเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจฌเจฒเจพเจ• เจฆเจพ เจ†เจ•เจพเจฐ เจฎเฉเฉฑเจ– เจฎเจนเฉฑเจคเจต เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค
เจฒเฉ‡เจ–เจ• เจ‡เฉฑเจ• เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจตเจฟเฉฑเจš เจฌเจฟเฉฐเจฆเฉ‚ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเจพ เจœเฉ‹ RAID 6 เจฆเฉเจ†เจฐเจพ-เจกเจฟเจœเจผเจพเจ‡เจจ เจตเจฟเฉฑเจš เจ–เจฐเจพเจฌ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจฆเฉ€ เจฌเจœเจพเจ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ RAID 6 เจ•เจฟเจธ เจตเจฟเฉฑเจš เจšเฉฐเจ—เจพ เจนเฉˆเฅค
เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• NVMe เจ•เฉˆเจธเจผ เจ…เจคเฉ‡ เจชเจคเจฒเฉ‡-เจชเฉเจฐเฉ‹เจตเจฟเจœเจผเจจเจฟเฉฐเจ— เจŸเฉเจฐเจฟเจ•เจธ เจจเจพเจฒ RAID 6 เจฆเฉ‡ เจ–เจฐเจพเจฌ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจฒเจฟเจ–เจฃ เจฒเจˆ เจฎเฉเจ†เจตเจœเจผเจพ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

เจ…เจธเฉ€เจ‚ เจ…เจœเฉ‡ เจคเฉฑเจ• RAID 6 เจฒเจˆ เจกเจฟเจธเจ•เจพเจฐเจก เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจซเจฟเจฒเจนเจพเจฒ "เจธเจผเฉเจฐเฉ‚" เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, OS เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

SATA HDD

#mdadm --create --verbose --assume-clean /dev/md3 --chunk-size=512 --level=6 --raid-devices=8 /dev/sd[g-n]1

NVMe RAID เจ‰เฉฑเจคเฉ‡ LVM

เจธเจชเฉ€เจก เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจฐเฉ‚เจŸ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ NVMe RAID 1 เจ‰เฉฑเจคเฉ‡ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจ•เจฟ /dev/md0 เจนเฉˆเฅค
เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจพเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจนเฉ‹เจฐ เจฒเฉ‹เฉœเจพเจ‚ เจฒเจˆ เจ‡เจธ เจคเฉ‡เจœเจผ เจเจฐเฉ‡ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจตเฉˆเจช, เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจ…เจคเฉ‡ LVM-เจ•เฉˆเจธเจผ เจ…เจคเฉ‡ LVM-เจชเจคเจฒเจพ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจเจฐเฉ‡ 'เจคเฉ‡ เจ‡เฉฑเจ• LVM VG เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค

#pvcreate /dev/md0
#vgcreate root /dev/md0

เจ†เจ‰ เจฐเฉ‚เจŸ เจซเจพเจ‡เจฒ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจ‡เฉฑเจ• เจญเจพเจ— เจฌเจฃเจพเจˆเจเฅค

#lvcreate -L 128G --name root root

เจ†เจ‰ เจฐเฉˆเจฎ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจธเจตเฉˆเจช เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจญเจพเจ— เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

#lvcreate -L 32G --name swap root

OS เจธเจฅเจพเจชเจจเจพ

เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจธเจญ เจ•เฉเจ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ.

เจ‰เจฌเฉฐเจŸเฉ‚ เจฒเจพเจˆเจต เจตเจพเจคเจพเจตเจฐเจจ เจคเฉ‹เจ‚ เจธเจฟเจธเจŸเจฎ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเจฟเจœเจผเจพเจฐเจก เจฒเจพเจ‚เจš เจ•เจฐเฉ‹เฅค เจธเจงเจพเจฐเจจ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ. เจธเจฟเจฐเจซเจผ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฒเจˆ เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฆเฉ‡ เจชเฉœเจพเจ… 'เจคเฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

  • /dev/md1, - เจฎเจพเจŠเจ‚เจŸ เจชเฉเจ†เจ‡เฉฐเจŸ /boot, FS - BTRFS
  • /dev/root/root (aka /dev/mapper/root-root), - เจฎเจพเจŠเจ‚เจŸ เจชเฉเจ†เจ‡เฉฐเจŸ / (เจฐเฉ‚เจŸ), FS - BTRFS
  • /dev/root/swap (เจ‰เจฐเจซเจผ /dev/mapper/root-swap), - เจธเจตเฉˆเจช เจญเจพเจ— เจตเจœเฉ‹เจ‚ เจตเจฐเจคเฉ‹เจ‚
  • เจฌเฉ‚เจŸเจฒเฉ‹เจกเจฐ เจจเฉ‚เฉฐ /dev/sda เจ‰เฉฑเจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ BTRFS เจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจตเจœเฉ‹เจ‚ เจšเฉเจฃเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฐเจธเจŸเจพเจฒเจฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ / (เจฐเฉ‚เจŸ) เจฒเจˆ "@" เจจเจพเจฎเจ• เจฆเฉ‹ BTRFS เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ /home เจฒเจˆ "@home"เฅค

เจšเจฒเฉ‹ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ...

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฎเจพเจกเจฒ เจกเจพเจ‡เจฒเจพเจ— เจฌเจพเจ•เจธ เจฆเฉ‡ เจจเจพเจฒ เจ–เจคเจฎ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเฉ‹ เจฌเฉ‚เจŸเจฒเฉ‹เจกเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเจฐเฉเฉฑเจŸเฉ€ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจคเฉเจธเฉ€เจ‚ เจฎเจฟเจ†เจฐเฉ€ เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจกเจพเจ‡เจฒเจพเจ— เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฃ เจ…เจคเฉ‡ เจธเจฅเจพเจชเจจเจพ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจธเจฟเจธเจŸเจฎ เจคเฉ‹เจ‚ เจฒเฉŒเจ— เจ†เจ‰เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจฒเฉŒเจ— เจ‡เจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ‡เฉฑเจ• เจธเจพเจซเจผ เจ‰เจฌเฉฐเจŸเฉ‚ เจฒเจพเจˆเจต เจกเฉˆเจธเจ•เจŸเจพเจช เจตเจฟเฉฑเจš เจธเจฎเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจŸเจฐเจฎเฉ€เจจเจฒ เจ–เฉ‹เจฒเฉเจนเฉ‹, เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ:

#sudo bash

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• chroot เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจ“:

#mkdir /mnt/chroot
#mount -o defaults,space_cache,noatime,nodiratime,discard,subvol=@ /dev/mapper/root-root /mnt/chroot
#mount -o defaults,space_cache,noatime,nodiratime,discard,subvol=@home /dev/mapper/root-root /mnt/chroot/home
#mount -o defaults,space_cache,noatime,nodiratime,discard /dev/md1 /mnt/chroot/boot
#mount --bind /proc /mnt/chroot/proc
#mount --bind /sys /mnt/chroot/sys
#mount --bind /dev /mnt/chroot/dev

เจ†เจ‰ chroot เจตเจฟเฉฑเจš เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ…เจคเฉ‡ เจนเฉ‹เจธเจŸ-เจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเฉ€เจ:

#cat /etc/hostname >/mnt/chroot/etc/hostname
#cat /etc/hosts >/mnt/chroot/etc/hosts
#cat /etc/resolv.conf >/mnt/chroot/etc/resolv.conf

เจ†เจ“ chroot เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจšเฉฑเจฒเฉ€เจ:

#chroot /mnt/chroot

เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจชเฉˆเจ•เฉ‡เจœ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจพเจ‚เจ—เฉ‡:

apt-get install --reinstall mdadm lvm2 thin-provisioning-tools btrfs-tools util-linux lsscsi nvme-cli mc debsums hdparm

เจ†เจ‰ เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ…เจคเฉ‡ เจ เฉ€เจ• เจ•เจฐเฉ€เจ เจœเฉ‹ เจ…เจงเฉ‚เจฐเฉ€ เจธเจฟเจธเจŸเจฎ เจธเจฅเจพเจชเจจเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจŸเฉ‡เจขเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ:

#CORRUPTED_PACKAGES=$(debsums -s 2>&1 | awk '{print $6}' | uniq)
#apt-get install --reinstall $CORRUPTED_PACKAGES

เจœเฉ‡เจ•เจฐ เจ•เฉเจ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ /etc/apt/sources.list เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ

เจ†เจ‰ เจŸเฉเจฐเจฟเจฎ/เจกเจฟเจธเจ•เจพเจฐเจก เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฒเจˆ เจฐเฉ‡เจก 6 เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฒเจˆ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจ•เจฐเฉ€เจ:

#cat >/etc/modprobe.d/raid456.conf << EOF
options raid456 devices_handle_discard_safely=1
EOF

เจ†เจ‰ เจ†เจชเจฃเฉ‡ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจฌเจฆเจฒเฉ€เจ:

#cat >/etc/udev/rules.d/60-md.rules << EOF
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="32768"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_min", ATTR{md/sync_speed_min}="48000"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_max", ATTR{md/sync_speed_max}="300000"
EOF
#cat >/etc/udev/rules.d/62-hdparm.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 254 /dev/%k"
EOF
#cat >/etc/udev/rules.d/63-blockdev.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/blockdev --setra 1024 /dev/%k"
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="md*", RUN+="/sbin/blockdev --setra 0 /dev/%k"
EOF

เจ‡เจน เจ•เฉ€ เจธเฉ€..?เจ…เจธเฉ€เจ‚ udev เจจเจฟเจฏเจฎเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจฌเจฃเจพเจ‡เจ† เจนเฉˆ เจœเฉ‹ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ:

  • RAID 2020 เจฒเจˆ เจฌเจฒเจพเจ• เจ•เฉˆเจธเจผ เจฆเจพ เจ†เจ•เจพเจฐ 6 เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจนเฉ‹เจฃ เจฒเจˆ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹เฅค เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ, เจ…เจœเจฟเจนเจพ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, Linux เจฆเฉ‡ เจฌเจฃเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค
  • เจเจฐเฉ‡ เจœเจพเจ‚เจšเจพเจ‚/เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฒเจˆ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ IO เจฐเจฟเจœเจผเจฐเจต เจ•เจฐเฉ‹เฅค เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ…เจงเฉ€เจจ เจธเจฆเฉ€เจตเฉ€ เจธเจฎเจ•เจพเจฒเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจซเจธเจฃ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เจฃ เจฒเจˆ เจนเฉˆเฅค
  • เจเจฐเฉ‡ เจฆเฉ€ เจœเจพเจ‚เจš/เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ เจฆเฉŒเจฐเจพเจจ เจ…เจงเจฟเจ•เจคเจฎ IO เจจเฉ‚เฉฐ เจธเฉ€เจฎเจฟเจค เจ•เจฐเฉ‹เฅค เจ‡เจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจคเจพเจ‚ เจ•เจฟ SSD RAIDs เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ/เจšเฉˆเฉฑเจ• เจ•เจฐเจจ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฐเจฟเจธเจช เจจเจพ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เฉ‡เฅค เจ‡เจน เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ NVMe เจฒเจˆ เจธเฉฑเจš เจนเฉˆเฅค (เจฐเฉ‡เจกเฉ€เจเจŸเจฐ เจฌเจพเจฐเฉ‡ เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹? เจฎเฉˆเจ‚ เจฎเจœเจผเจพเจ• เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€เฅค)
  • เจกเจฟเจธเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจธเจชเจฟเฉฐเจกเจฒ เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ (HDD) เจจเฉ‚เฉฐ APM เจฐเจพเจนเฉ€เจ‚ เจฐเฉ‹เจ•เจฃ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เฉ‹ เจ…เจคเฉ‡ เจกเจฟเจธเจ• เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐเจพเจ‚ เจฒเจˆ เจธเจฒเฉ€เจช เจŸเจพเจˆเจฎเจ†เจŠเจŸ เจจเฉ‚เฉฐ 7 เจ˜เฉฐเจŸเฉ‡ เจคเฉฑเจ• เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹เฅค เจคเฉเจธเฉ€เจ‚ APM เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เจฏเฉ‹เจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจกเจฐเจพเจˆเจตเจพเจ‚ เจ‡เจน เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ (-B 255)เฅค เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ เจฆเฉ‡ เจจเจพเจฒ, เจกเจฐเจพเจˆเจตเจพเจ‚ เจชเฉฐเจœ เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจฌเจพเจ…เจฆ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค เจซเจฟเจฐ OS เจกเจฟเจธเจ• เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉเจฌเจพเจฐเจพ เจธเจชเจฟเจจ เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚, เจ…เจคเฉ‡ เจธเจญ เจ•เฉเจ เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจกเจฟเจธเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจธเจชเจฟเฉฐเจกเจฒ เจฐเฉ‹เจŸเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจธเฉ€เจฎเจค เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ—เจฟเจฃเจคเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจธเจงเจพเจฐเจจ เจกเจฟเจซเฉŒเจฒเจŸ เจšเฉฑเจ•เจฐ เจ•เฉเจ เจธเจพเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจฎเจพเจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจชเฉ€เฉœเจค เจจเจนเฉ€เจ‚ เจนเจจ, เจชเจฐ เจธเจพเจกเฉ€เจ†เจ‚ "เจฒเฉˆเจชเจŸเจพเจช" เจนเจจ, เจขเฉเจ•เจตเฉ€เจ‚ เจกเจฟเจซเฉŒเจฒเจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจœเฉ‹ เจ•เจฟ เจฐเฉ‡เจก เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเจฟเฉฐเจจเฉ€-MAID เจตเจฐเจ—เจพ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค
  • เจกเจฟเจธเจ• (เจฐเฉ‹เจŸเฉ‡เจŸเจฟเฉฐเจ—) 1 เจฎเฉˆเจ—เจพเจฌเจพเจˆเจŸ 'เจคเฉ‡ เจฐเฉ€เจกเจนเฉˆเฉฑเจก เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ - เจฒเจ—เจพเจคเจพเจฐ เจฆเฉ‹ เจฌเจฒเจพเจ•/เจšเฉฐเจ• เจฐเฉ‡เจก 6
  • เจเจฐเฉ‡ 'เจคเฉ‡ เจฐเฉ€เจกเจนเฉˆเฉฑเจก เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเฉ‹.

เจ†เจ‰ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเฉ€เจ /etc/fstab:

#cat >/etc/fstab << EOF
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# file-system mount-point type options dump pass
/dev/mapper/root-root / btrfs defaults,space_cache,noatime,nodiratime,discard,subvol=@ 0 1
UUID=$(blkid -o value -s UUID /dev/md1) /boot btrfs defaults,space_cache,noatime,nodiratime,discard 0 2
/dev/mapper/root-root /home btrfs defaults,space_cache,noatime,nodiratime,discard,subvol=@home 0 2
/dev/mapper/root-swap none swap sw 0 0
EOF

เจ…เจœเจฟเจนเจพ เจ•เจฟเจ‰เจ‚ เจนเฉˆ..?เจ…เจธเฉ€เจ‚ UUID เจฆเฉเจ†เจฐเจพ /boot เจญเจพเจ— เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจเจฐเฉ‡ เจจเจพเจฎเจ•เจฐเจจ เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ /dev/mapper/vg-lv เจธเฉฐเจ•เฉ‡เจค เจตเจฟเฉฑเจš LVM เจจเจพเจฎเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฌเจพเจ•เฉ€ เจฌเจšเฉ‡ เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจตเจฟเจฒเฉฑเจ–เจฃ เจขเฉฐเจ— เจจเจพเจฒ เจชเจ›เจพเจฃเจฆเฉ‡ เจนเจจเฅค

เจ…เจธเฉ€เจ‚ LVM เจฒเจˆ UUID เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ LVM เจตเจพเจฒเฉ€เจ…เจฎ เจฆเจพ UUID เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ‡ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅคเจฎเจพเจŠเจ‚เจŸ /dev/mapper/root-root.. เจฆเฉ‹ เจตเจพเจฐ?เจนเจพเจ‚เฅค เจฌเจฟเจฒเจ•เฉเจฒเฅค BTRFS เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเฅค เจ‡เจธ เจซเจพเจ‡เจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฌเจตเฉ‹เจฒ เจจเจพเจฒ เจ•เจˆ เจตเจพเจฐ เจฎเจพเจŠเจ‚เจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เจธเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจฎเฉˆเจ‚ เจ•เจฆเฉ‡ เจตเฉ€ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ BTRFS เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ‡ LVM เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉˆเจฐเจพเจจเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจ†เจ‰ mdadm เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ:

#/usr/share/mdadm/mkconf | sed 's/#DEVICE/DEVICE/g' >/etc/mdadm/mdadm.conf

เจ†เจ“ LVM เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจ•เจฐเฉ€เจ:

#cat >>/etc/lvm/lvmlocal.conf << EOF

activation {
thin_pool_autoextend_threshold=90
thin_pool_autoextend_percent=5
}
allocation {
cache_pool_max_chunks=2097152
}
devices {
global_filter=["r|^/dev/.*_corig$|","r|^/dev/.*_cdata$|","r|^/dev/.*_cmeta$|","r|^/dev/.*gpv$|","r|^/dev/images/.*$|","r|^/dev/mapper/images.*$|","r|^/dev/backup/.*$|","r|^/dev/mapper/backup.*$|"] issue_discards=1
}
EOF

เจ‡เจน เจ•เฉ€ เจธเฉ€..?เจ…เจธเฉ€เจ‚ เจตเฉŒเจฒเจฏเฉ‚เจฎ เจฆเฉ‡ 90% เจฆเฉเจ†เจฐเจพ เจ•เจฌเจœเจผเฉ‡ เจตเจพเจฒเฉ€ เจฅเจพเจ‚ เจฆเฉ‡ 5% เจคเฉฑเจ• เจชเจนเฉเฉฐเจšเจฃ 'เจคเฉ‡ LVM เจชเจคเจฒเฉ‡ เจชเฉ‚เจฒ เจฆเฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจตเจฟเจธเจฅเจพเจฐ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‡เจ† เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ LVM เจ•เฉˆเจธเจผ เจฒเจˆ เจ•เฉˆเจธเจผ เจฌเจฒเจพเจ•เจพเจ‚ เจฆเฉ€ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ—เจฟเจฃเจคเฉ€ เจตเจงเจพ เจฆเจฟเฉฑเจคเฉ€ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ LVM เจจเฉ‚เฉฐ LVM เจตเจพเจฒเฉ€เจ…เจฎ (PV) เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เจฟเจ† เจนเฉˆ:

  • LVM เจ•เฉˆเจธเจผ (cdata) เจตเจพเจฒเฉ‡ เจฏเฉฐเจคเจฐ
  • LVM เจ•เฉˆเจธเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจœเฉฐเจคเจฐ, เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ ( _corig). เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ€ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจ•เฉˆเจธเจผ เจฆเฉเจ†เจฐเจพ เจธเจ•เฉˆเจจ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ (เจธเจฟเจฐเจซเจผ ).
  • LVM เจ•เฉˆเจธเจผ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ (cmeta) เจตเจพเจฒเฉ‡ เจฏเฉฐเจคเจฐ
  • VG เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจจเจพเจฎ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเจพเจฒเฅค เจ‡เฉฑเจฅเฉ‡ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจกเจฟเจธเจ• เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจนเฉ‹เจฃเจ—เฉ‡, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจนเฉ‹เจธเจŸ เจ‰เฉฑเจคเฉ‡ LVM เจ—เฉˆเจธเจŸ OS เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจตเจพเจฒเฉ€เจ…เจฎ เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎ เจ•เจฐเฉ‡เฅค
  • VG เจตเจฟเฉฑเจš เจจเจพเจฎ เจฌเฉˆเจ•เจ…เฉฑเจช เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฟเจตเจพเจˆเจธเจพเจ‚เฅค เจ‡เฉฑเจฅเฉ‡ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจพเจชเฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚เฅค
  • เจ‰เจน เจธเจพเจฐเฉ‡ เจฏเฉฐเจคเจฐ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเจพ เจจเจพเจฎ โ€œgpvโ€ (เจ—เฉˆเจธเจŸ เจซเจฟเจœเจผเฉ€เจ•เจฒ เจตเจพเจฒเฉ€เจ…เจฎ) เจจเจพเจฒ เจ–เจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ LVM VG 'เจคเฉ‡ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจ–เจพเจฒเฉ€ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจกเจฟเจธเจ•เจพเจฐเจก เจธเจฎเจฐเจฅเจจ เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจงเจฟเจ†เจจ เจฐเฉฑเจ–เฉ‹. เจ‡เจน SSD 'เจคเฉ‡ LVs เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจน เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ SSD RAID 6 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฏเฉ‹เจœเจจเจพ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ…เจธเฉ€เจ‚ เจชเจคเจฒเฉ‡ เจชเฉเจฐเจฌเฉฐเจง เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ‡เจธ เจฒเจˆ เจ‡เจน เจธเจพเจกเฉ‡ เจฒเจˆ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจฐเฉเจ•เจพเจตเจŸ เจจเจนเฉ€เจ‚ เจฌเจฃเฉ‡เจ—เจพเฅค

เจ†เจ“ initramfs เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ€เจ:

#update-initramfs -u -k all

เจ—เจฐเจฌ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเฉ‹:

#apt-get install grub-pc
#apt-get purge os-prober
#dpkg-reconfigure grub-pc

เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเฉ€ เจนเฉˆ?เจ‰เจน เจธเจพเจฐเฉ‡ เจœเฉ‹ sd* เจนเจจเฅค เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ€ SATA เจกเจฐเจพเจˆเจต เจœเจพเจ‚ SSD เจคเฉ‹เจ‚ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ os-prober เจ•เจฟเจ‰เจ‚ เจœเฉ‹เฉœเจฟเจ†..?เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเฉเจคเฉฐเจคเจฐเจคเจพ เจ…เจคเฉ‡ เจ–เฉ‡เจกเจฃ เจตเจพเจฒเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจฒเจˆ.

เจ‡เจน เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ RAIDs เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจกเฉ€เจ—เจฐเฉ‡เจก เจธเจŸเฉ‡เจŸ เจตเจฟเฉฑเจš เจนเฉˆเฅค เจ‡เจน เจ‰เจนเจจเจพเจ‚ เจญเจพเจ—เจพเจ‚ เจ‰เฉฑเจคเฉ‡ OS เจ–เฉ‹เจœเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ‡เจธ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ‰เฉฑเจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ›เฉฑเจก เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‰เจชเจฐเฉ‹เจ•เจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ—เฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹เฅค เจฎเฉˆเจ‚ เจ†เจจเจฒเจพเจˆเจจ เจธเจผเจฐเจพเจฐเจคเฉ€ เจนเฉฑเจฅเจพเจ‚ เจคเฉ‹เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพเจ‰เจฃ เจฒเจˆ เจชเจ•เจตเจพเจจเจพเจ‚ เจฆเฉ€ เจญเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค

เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ เจ…เจธเฉ€เจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฅเจพเจชเจจเจพ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐ เจฒเจฟเจ† เจนเฉˆเฅค เจ‡เจน เจจเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจฟเจค OS เจตเจฟเฉฑเจš เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆเฅค เจฌเฉ‚เจŸ เจนเฉ‹เจฃ เจฏเฉ‹เจ— เจฒเจพเจˆเจต CD/USB เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ‹เฅค

#exit
#reboot

เจฌเฉ‚เจŸ เจœเฉฐเจคเจฐ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ SATA SSDs เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉ‹เจˆ เจตเฉ€ เจšเฉเจฃเฉ‹เฅค

SATA SSD เจ‰เฉฑเจคเฉ‡ LVM

เจ‡เจธ เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจจเจตเฉ‡เจ‚ OS เจตเจฟเฉฑเจš เจฌเฉ‚เจŸ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚, เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจนเฉˆ, apt, เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจ–เฉ‹เจฒเฉเจนเจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจนเฉˆ:

#sudo bash

เจšเจฒเฉ‹ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ€เจเฅค

SATA SSD เจคเฉ‹เจ‚ เจเจฐเฉ‡ เจจเฉ‚เฉฐ "เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹":

#blkdiscard /dev/md2

เจœเฉ‡ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ, เจคเจพเจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹:

#blkdiscard --step 65536 /dev/md2
SATA SSD 'เจคเฉ‡ LVM VG เจฌเจฃเจพเจ“:

#pvcreate /dev/md2
#vgcreate data /dev/md2

เจ‡เฉฑเจ• เจนเฉ‹เจฐ VG เจ•เจฟเจ‰เจ‚..?เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• VG เจจเจพเจฎเจ• เจฐเฉ‚เจŸ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚ เจจเจพ เจธเจญ เจ•เฉเจ เจ‡เฉฑเจ• VG เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹?

เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• VG เจตเจฟเฉฑเจš เจ•เจˆ PVs เจนเจจ, เจคเจพเจ‚ VG เจจเฉ‚เฉฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจธเจฐเจ—เจฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจฐเฉ‡ PV เจฎเฉŒเจœเฉ‚เจฆ เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ (เจ”เจจเจฒเจพเจˆเจจ)เฅค เจ…เจชเจตเจพเจฆ LVM RAID เจนเฉˆ, เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจจเจนเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจœเฉ‡เจ•เจฐ RAID 6 เจเจฐเฉ‡ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ 'เจคเฉ‡ เจ•เฉ‹เจˆ เจ…เจธเจซเจฒเจคเจพ (เจกเฉ‡เจŸเจพ เจ—เฉเจ†เจšเจฃ) เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉ‚เจŸ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค

เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจเจฌเจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจฆเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจ•เจฟเจธเจฎ เจฆเฉ‡ เจญเฉŒเจคเจฟเจ• "เจฎเฉ€เจกเฉ€เจ†" เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ VG เจตเจฟเฉฑเจš เจ…เจฒเฉฑเจ— เจ•เจฐ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

เจตเจฟเจ—เจฟเจ†เจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจตเฉฑเจ–-เจตเฉฑเจ– RAID เจเจฐเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– "เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจกเฉ‹เจฎเฉ‡เจจเจพเจ‚" เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• VG เจตเจฟเฉฑเจš เจ•เฉเจฐเฉˆเจฎ เจ•เจฐเจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจ…เจธเจซเจฒเจคเจพ เจฆเจพ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจ†เจฎ เจฌเจฟเฉฐเจฆเฉ‚ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพเฅค

"เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ" เจชเฉฑเจงเจฐ 'เจคเฉ‡ LVM เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจธเจพเจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– RAID เจเจฐเฉ‡ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจœเฉ‹เฉœ เจ•เฉ‡ เจฎเจจเจฎเจฐเจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฑเจŸเจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ - เจšเจฒเจพเจ“ เจ‰เจธเฉ‡ เจตเฉ‡เจฒเฉ‡ bcache + LVM เจชเจคเจฒเจพ, bcache + BTRFS, LVM เจ•เฉˆเจš + LVM เจชเจคเจฒเจพ, เจ•เฉˆเจšเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ ZFS เจธเฉฐเจฐเจšเจจเจพ, เจœเจพเจ‚ เจ‡เจธ เจธเจญ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจจเจฐเจ• เจฎเจฟเจธเจผเจฐเจฃเฅค

"เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ" เจชเฉฑเจงเจฐ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจšเฉฐเจ—เฉ‡ เจชเฉเจฐเจพเจฃเฉ‡ "เจฎเฉ‹เจŸเฉ‡" LVM เจตเจพเจฒเฉ€เจ…เจฎ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจนเฉ‹เจฐ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจตเจฐเจคเจพเจ‚เจ—เฉ‡เฅค เจ‡เจธ เจจเจฟเจฏเจฎ เจฆเจพ เจ…เจชเจตเจพเจฆ เจฌเฉˆเจ•เจ…เฉฑเจช เจญเจพเจ— เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เจธ เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉฑเจ•, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจชเจพเจ เจ•เจพเจ‚ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ†เจฒเฉเจนเจฃเฉ‡ เจตเจพเจฒเฉ€ เจ—เฉเฉฑเจกเฉ€ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจธเจผเฉฑเจ• เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจธเฉ€.

SATA HDD 'เจคเฉ‡ LVM

#pvcreate /dev/md3
#vgcreate backup /dev/md3

เจฆเฉเจฌเจพเจฐเจพ เจจเจตเจพเจ‚ เจตเฉ€.เจœเฉ€..?เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจกเจฟเจธเจ• เจเจฐเฉ‡ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจกเจพเจŸเจพ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ เจตเจฐเจคเจพเจ‚เจ—เฉ‡, เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจธเจพเจกเจพ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ‡เจ—เจพ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจ†เจฎ เจตเจพเจ‚เจ— เจ—เฉˆเจฐ-เจฌเฉˆเจ•เจ…เฉฑเจช เจกเฉ‡เจŸเจพ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เฉ‡เจ—เฉ€เฅค เจ‡เจธ เจฒเจˆ, VG เจเจ•เจŸเฉ€เจตเฉ‡เจธเจผเจจ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ VG เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

LVM เจ•เฉˆเจธเจผ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจšเจฒเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉˆเจšเจฟเฉฐเจ— เจกเจฟเจตเจพเจˆเจธ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจตเจฐเจคเจฃ เจฒเจˆ NVMe RAID 1 เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• LV เจฌเจฃเจพเจˆเจเฅค

#lvcreate -L 70871154688B --name cache root

เจ‡เฉฐเจจเจพ เจ˜เฉฑเจŸ เจ•เจฟเจ‰เจ‚ เจนเฉˆ...?เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ NVMe SSD เจ•เฉ‹เจฒ เจ‡เฉฑเจ• SLC เจ•เฉˆเจธเจผ เจตเฉ€ เจนเฉˆเฅค 4-เจฌเจฟเฉฑเจŸ MLC เจตเจฟเฉฑเจš เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ 18 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ "เจฎเฉเจซเจผเจค" เจ…เจคเฉ‡ 3 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจกเจพเจ‡เจจเจพเจฎเจฟเจ•เฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เจน เจ•เฉˆเจธเจผ เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ NVMe SSDs เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจกเฉ‡ SATA SSD เจจเจพเจฒเฉ‹เจ‚ เจœเจผเจฟเจ†เจฆเจพ เจคเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจ—เฉ‡เฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เจธ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡, เจธเจพเจกเฉ‡ เจฒเจˆ LVM เจ•เฉˆเจธเจผ เจญเจพเจ— เจจเฉ‚เฉฐ NVMe เจกเจฐเจพเจˆเจต เจฆเฉ‡ SLC เจ•เฉˆเจธเจผ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจคเฉ‹เจ‚ เจฆเฉเฉฑเจ—เจฃเจพ เจตเฉฑเจกเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจ•เฉ‹เจˆ เจ…เจฐเจฅ เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฆเจพเฅค เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ NVMe เจกเจฐเจพเจˆเจตเจพเจ‚ เจฒเจˆ, เจฒเฉ‡เจ–เจ• 32-64 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจ•เฉˆเจธเจผ เจฌเจฃเจพเจ‰เจฃเจพ เจœเจพเจ‡เจœเจผ เจธเจฎเจเจฆเจพ เจนเฉˆเฅค

เจฆเจฟเฉฑเจคเฉ‡ เจญเจพเจ— เจฆเจพ เจ†เจ•เจพเจฐ 64 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ, เจ•เฉˆเจธเจผ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจ…เจคเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฆเฉ€ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจพเจชเฉ€ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจ•เจฐเจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจ‚ เจจเฉ‹เจŸ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจ—เฉฐเจฆเฉ‡ เจธเจฟเจธเจŸเจฎ เจฌเฉฐเจฆ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, LVM เจชเฉ‚เจฐเฉ‡ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ—เฉฐเจฆเฉ‡ เจตเจœเฉ‹เจ‚ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจธ เจจเฉ‚เฉฐ เจนเจฐ เจตเจพเจฐ เจ‡เจธ เจกเจฟเจตเจพเจˆเจธ 'เจคเฉ‡ lvchange เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ 'เจคเฉ‡ เจฆเฉเจนเจฐเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจธเจฟเจธเจŸเจฎ เจฆเฉเจฌเจพเจฐเจพ เจšเจพเจฒเฉ‚ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจ‚ เจขเฉเจ•เจตเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉเจฐเฉฐเจค เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚.

เจ†เจ‰ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉˆเจธเจผเจก เจกเจฟเจตเจพเจˆเจธ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจตเจฐเจคเจฃ เจฒเจˆ SATA RAID 6 เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• LV เจฌเจฃเจพเจˆเจเฅค

#lvcreate -L 3298543271936B --name cache data

เจธเจฟเจฐเจซ เจคเจฟเฉฐเจจ เจŸเฉˆเจฐเจพเจฌเจพเจˆเจŸ เจ•เจฟเจ‰เจ‚..?เจคเจพเจ‚ เจœเฉ‹, เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เฉเจ เจนเฉ‹เจฐ เจฒเฉ‹เฉœเจพเจ‚ เจฒเจˆ SATA SSD RAID 6 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ•เฉˆเจธเจผเจก เจธเจชเฉ‡เจธ เจฆเจพ เจ†เจ•เจพเจฐ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจคเฉŒเจฐ 'เจคเฉ‡, เจซเจฒเจพเจˆ 'เจคเฉ‡, เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเจงเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ…เจธเจฅเจพเจˆ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉฐเจฆ เจ•เจฐเจจ เจ…เจคเฉ‡ เจฎเฉเฉœ-เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจชเจฐ LVM-เจ•เฉˆเจธเจผ เจ“เจตเจฐ เจฆเจพ เจตเจฟเจธเจผเฉ‡เจธเจผ เจซเจพเจ‡เจฆเจพ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, bcache เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‰เฉฑเจกเจฆเฉ‡ เจนเฉ‹เจ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ†เจ‰ เจ•เฉˆเจšเจฟเฉฐเจ— เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ VG เจฌเจฃเจพเจˆเจเฅค

#pvcreate /dev/root/cache
#pvcreate /dev/data/cache
#vgcreate cache /dev/root/cache /dev/data/cache

เจ†เจ‰ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจกเจฟเจตเจพเจˆเจธ เจคเฉ‡ เจ‡เฉฑเจ• LV เจฌเจฃเจพเจ‰เฅค

#lvcreate -L 3298539077632B --name cachedata cache /dev/data/cache

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค /dev/data/cache เจ‰เฉฑเจคเฉ‡ เจธเจพเจฐเฉ€ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฒเฉˆ เจฒเจˆ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจนเฉ‹เจฐ เจธเจพเจฐเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจญเจพเจ— เจคเฉเจฐเฉฐเจค /dev/root/cache เจ‰เฉฑเจคเฉ‡ เจฌเจฃเจพเจ เจœเจพ เจธเจ•เจฃเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ—เจฒเจค เจœเจ—เฉเจนเจพ 'เจคเฉ‡ เจ•เฉเจ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ pvmove เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉ‚เจต เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจšเจฒเฉ‹ เจ•เฉˆเจธเจผ เจฌเจฃเจพเจ‰ เจ…เจคเฉ‡ เจฏเฉ‹เจ— เจ•เจฐเฉ€เจ:

#lvcreate -y -L 64G -n cache cache /dev/root/cache
#lvcreate -y -L 1G -n cachemeta cache /dev/root/cache
#lvconvert -y --type cache-pool --cachemode writeback --chunksize 64k --poolmetadata cache/cachemeta cache/cache
#lvconvert -y --type cache --cachepool cache/cache cache/cachedata

เจ‡เฉฐเจจเจพ เจšเฉฐเจ•เจธเจพเจˆเจœเจผ เจ•เจฟเจ‰เจ‚..?เจตเจฟเจนเจพเจฐเจ• เจชเฉเจฐเจฏเฉ‹เจ—เจพเจ‚ เจฆเฉเจ†เจฐเจพ, เจฒเฉ‡เจ–เจ• เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€ เจ•เจฟ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจจเจคเฉ€เจœเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ LVM เจ•เฉˆเจธเจผ เจฌเจฒเจพเจ• เจฆเจพ เจ†เจ•เจพเจฐ LVM เจชเจคเจฒเฉ‡ เจฌเจฒเจพเจ• เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ†เจ•เจพเจฐ เจœเจฟเฉฐเจจเจพ เจ›เฉ‹เจŸเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจจเจพ เจ‰เฉฑเจจเฉ€ เจนเฉ€ เจตเจงเฉ€เจ† เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

LVM เจชเจคเจฒเฉ‡ เจฒเจˆ 64k เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฌเจฒเจพเจ• เจ†เจ•เจพเจฐ เจนเฉˆเฅค

เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹ เจฒเจฟเจ–เจฃเจพ..!เจนเจพเจ‚เฅค เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเจพ เจ•เฉˆเจธเจผ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจœเฉฐเจคเจฐ เจฒเจˆ เจธเจฎเจ•เจพเจฒเฉ€ เจฒเจฟเจ–เจฃ เจจเฉ‚เฉฐ เจฎเฉเจฒเจคเจตเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจ•เฉˆเจธเจผ เจ—เฉเฉฐเจฎ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจกเจฟเจตเจพเจˆเจธ 'เจคเฉ‡ เจกเจพเจŸเจพ เจ—เฉเจ† เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจฒเฉ‡เจ–เจ• เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเฉ‡เจ—เจพ เจ•เจฟ เจ‡เจธ เจœเฉ‹เจ–เจฎ เจฆเฉ€ เจชเฉ‚เจฐเจคเฉ€ เจฒเจˆ NVMe RAID 1 เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ•เจฟเจนเฉœเฉ‡ เจ‰เจชเจพเจ… เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ‡เจน เจ•เฉˆเจธเจผ เจ•เจฟเจธเจฎ RAID 6 เจฆเฉ‡ เจ–เจฐเจพเจฌ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฒเจˆ เจฎเฉเจ†เจตเจœเจผเจพ เจฆเฉ‡เจฃ เจฒเจˆ เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจšเฉเจฃเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจ†เจ“ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจฎเจฟเจฒเจฟเจ†:

#lvs -a -o lv_name,lv_size,devices --units B cache
LV LSize Devices
[cache] 68719476736B cache_cdata(0)
[cache_cdata] 68719476736B /dev/root/cache(0)
[cache_cmeta] 1073741824B /dev/root/cache(16384)
cachedata 3298539077632B cachedata_corig(0)
[cachedata_corig] 3298539077632B /dev/data/cache(0)
[lvol0_pmspare] 1073741824B /dev/root/cache(16640)

เจธเจฟเจฐเจซเจผ [cachedata_corig] /dev/data/cache 'เจคเฉ‡ เจธเจฅเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจœเฉ‡ เจ•เฉเจ เจ—เจฒเจค เจนเฉˆ, เจคเจพเจ‚ pvmove เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹.

เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

#lvconvert -y --uncache cache/cachedata

เจ‡เจน เจ”เจจเจฒเจพเจˆเจจ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค LVM เจฌเจธ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจกเจฟเจธเจ• เจจเจพเจฒ เจธเจฟเฉฐเจ• เจ•เจฐเฉ‡เจ—เจพ, เจ‡เจธเจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ cachedata_corig เจจเฉ‚เฉฐ เจ•เฉˆเจšเฉ‡เจกเจพเจŸเจพ เจตเจฟเฉฑเจš เจฎเฉเฉœ เจจเจพเจฎ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค

LVM เจชเจคเจฒเจพ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ†เจ‰ เจฎเฉ‹เจŸเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ LVM เจชเจคเจฒเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเฉฐเจจเฉ€ เจฅเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

#thin_metadata_size --block-size=64k --pool-size=6terabytes --max-thins=100000 -u bytes
thin_metadata_size - 3385794560 bytes estimated metadata area size for "--block-size=64kibibytes --pool-size=6terabytes --max-thins=100000"

4 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจคเฉฑเจ• เจฆเจพ เจฐเจพเจŠเจ‚เจก: 4294967296B

เจฆเฉ‹ เจจเจพเจฒ เจ—เฉเจฃเจพ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ LVM PV เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฒเจˆ 4194304B เจœเฉ‹เฉœเฉ‹: 8594128896B
เจ†เจ‰ เจ‡เจธ เจ‰เฉฑเจคเฉ‡ LVM เจชเจคเจฒเจพ เจฎเฉˆเจŸเจพเจกเจพเจŸเจพ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจพเจชเฉ€ เจฐเฉฑเจ–เจฃ เจฒเจˆ NVMe RAID 1 เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจญเจพเจ— เจฌเจฃเจพเจˆเจ:

#lvcreate -L 8594128896B --name images root

เจ•เจพเจนเจฆเฉ‡ เจฒเจˆ..?เจ‡เฉฑเจฅเฉ‡ เจธเจตเจพเจฒ เจชเฉˆเจฆเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ: LVM เจชเจคเจฒเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจ‰เจ‚ เจฐเฉฑเจ–เจฟเจ† เจœเจพเจตเฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ NVMe 'เจคเฉ‡ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจธเจชเฉ€เจก เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ, เจชเจฐ เจ‡เจน เจฎเฉเฉฑเจ– เจ•เจพเจฐเจจ เจคเฉ‹เจ‚ เจฆเฉ‚เจฐ เจนเฉˆเฅค เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ•เฉˆเจธเจผ เจ…เจธเจซเจฒเจคเจพ เจฆเจพ เจ‡เฉฑเจ• เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉˆ. เจ‡เจธ เจจเจพเจฒ เจ•เฉเจ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ LVM เจชเจคเจฒเจพ เจฎเฉˆเจŸเจพเจกเจพเจŸเจพ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจธเจญ เจ•เฉเจ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจชเฉ‚เจฐเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจเจพ เจฒเจ—เจญเจ— เจ…เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจ—เฉˆเจฐ-เจ•เฉˆเจธเจผเจก, เจชเจฐ เจคเฉ‡เจœเจผ, เจตเจพเจฒเฉ€เจ…เจฎ เจตเจฟเฉฑเจš เจฒเจฟเจœเจพ เจ•เฉ‡, เจ…เจธเฉ€เจ‚ เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจœเจพเจ‚ เจญเฉเจฐเจฟเจธเจผเจŸเจพเจšเจพเจฐ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฆเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฆเฉ€ เจ—เจฐเฉฐเจŸเฉ€ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจ•เจพเจฐเจจ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจจเฉเจ•เจธเจพเจจ เจจเฉ‚เฉฐ เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจฅเจพเจจเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจœเฉ‹ เจคเฉ€เจฌเจฐเจคเจพ เจฆเฉ‡ เจ†เจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฐเจฟเจ•เจตเจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจ‡เฉฑเจ• เจ‰เฉฑเจš เจธเฉฐเจญเจพเจตเจจเจพ เจฆเฉ‡ เจจเจพเจฒ, เจ‡เจน เจจเฉเจ•เจธเจพเจจ FS เจฒเฉŒเจ—เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจนเจพเจฒ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡เฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจœเฉ‡เจ•เจฐ เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเจพ เจ‡เฉฑเจ• เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจชเจนเจฟเจฒเจพเจ‚ เจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจตเจพเจฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚, LVM เจฅเจฟเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจกเจฟเจœเจผเจพเจˆเจจ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเฉ€ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฆเฉ€ เจ—เจพเจฐเฉฐเจŸเฉ€ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค .

เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ VG เจฌเจฃเจพเจˆเจ เจœเฉ‹ เจชเจคเจฒเฉ‡-เจชเฉเจฐเฉ‹เจตเจฟเจœเจผเจจเจฟเฉฐเจ— เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ:

#pvcreate /dev/root/images
#pvcreate /dev/cache/cachedata
#vgcreate images /dev/root/images /dev/cache/cachedata

เจ†เจ“ เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจฌเจฃเจพเจˆเจ:

#lvcreate -L 274877906944B --poolmetadataspare y --poolmetadatasize 4294967296B --chunksize 64k -Z y -T images/thin-pool
เจ•เจฟเจ‰เจ‚ -Z yเจ‡เจธ เจฎเฉ‹เจก เจฆเจพ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจฐเจพเจฆเจพ เจ•เฉ€ เจนเฉˆ - เจธเจชเฉ‡เจธ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจตเฉฐเจกเจฃ เจตเฉ‡เจฒเฉ‡ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจฒเฉ€เจ• เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เจฃ เจฒเจˆ - เจœเจผเฉ€เจฐเฉ‹เจ‡เฉฐเจ— เจจเฉ‚เฉฐ 64k เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ—เจคเฉ€ เจตเจงเจพเจ‰เจฃ เจฒเจˆ เจตเฉ€ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจชเจคเจฒเฉ‡ เจตเฉŒเจฒเจฏเฉ‚เจฎ เจฆเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจจเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจ–เฉ‡เจคเจฐ เจฒเจˆ 64k เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ•เฉ‹เจˆ เจตเฉ€ เจฒเจฟเจ–เจฃเจพ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš 64K เจ•เจฟเจจเจพเจฐเฉ‡-เจ…เจฒเจพเจˆเจจ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ‡เจน เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉˆเจธเจผ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจšเจพเจฒเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค

เจ†เจ‰ LVs เจจเฉ‚เฉฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค PVs เจตเจฟเฉฑเจš เจญเฉ‡เจœเฉ€เจ:

#pvmove -n images/thin-pool_tdata /dev/root/images /dev/cache/cachedata
#pvmove -n images/lvol0_pmspare /dev/cache/cachedata /dev/root/images
#pvmove -n images/thin-pool_tmeta /dev/cache/cachedata /dev/root/images

เจ†เจ“ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ:

#lvs -a -o lv_name,lv_size,devices --units B images
LV LSize Devices
[lvol0_pmspare] 4294967296B /dev/root/images(0)
thin-pool 274877906944B thin-pool_tdata(0)
[thin-pool_tdata] 274877906944B /dev/cache/cachedata(0)
[thin-pool_tmeta] 4294967296B /dev/root/images(1024)

เจ†เจ‰ เจŸเฉˆเจธเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจชเจคเจฒเจพ เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจฃเจพเจˆเจ:

#lvcreate -V 64G --thin-pool thin-pool --name test images

เจ…เจธเฉ€เจ‚ เจŸเฉˆเจธเจŸเจพเจ‚ เจ…เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฒเจˆ เจชเฉˆเจ•เฉ‡เจœ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡:

#apt-get install sysstat fio

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฐเฉ€เจ…เจฒ เจŸเจพเจˆเจฎ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹:

#watch 'lvs --rows --reportformat basic --quiet -ocache_dirty_blocks,cache_settings cache/cachedata && (lvdisplay cache/cachedata | grep Cache) && (sar -p -d 2 1 | grep -E "sd|nvme|DEV|md1|md2|md3|md0" | grep -v Average | sort)'

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

#fio --loops=1 --size=64G --runtime=4 --filename=/dev/images/test --stonewall --ioengine=libaio --direct=1
--name=4kQD32read --bs=4k --iodepth=32 --rw=randread
--name=8kQD32read --bs=8k --iodepth=32 --rw=randread
--name=16kQD32read --bs=16k --iodepth=32 --rw=randread
--name=32KQD32read --bs=32k --iodepth=32 --rw=randread
--name=64KQD32read --bs=64k --iodepth=32 --rw=randread
--name=128KQD32read --bs=128k --iodepth=32 --rw=randread
--name=256KQD32read --bs=256k --iodepth=32 --rw=randread
--name=512KQD32read --bs=512k --iodepth=32 --rw=randread
--name=4Kread --bs=4k --rw=read
--name=8Kread --bs=8k --rw=read
--name=16Kread --bs=16k --rw=read
--name=32Kread --bs=32k --rw=read
--name=64Kread --bs=64k --rw=read
--name=128Kread --bs=128k --rw=read
--name=256Kread --bs=256k --rw=read
--name=512Kread --bs=512k --rw=read
--name=Seqread --bs=1m --rw=read
--name=Longread --bs=8m --rw=read
--name=Longwrite --bs=8m --rw=write
--name=Seqwrite --bs=1m --rw=write
--name=512Kwrite --bs=512k --rw=write
--name=256write --bs=256k --rw=write
--name=128write --bs=128k --rw=write
--name=64write --bs=64k --rw=write
--name=32write --bs=32k --rw=write
--name=16write --bs=16k --rw=write
--name=8write --bs=8k --rw=write
--name=4write --bs=4k --rw=write
--name=512KQD32write --bs=512k --iodepth=32 --rw=randwrite
--name=256KQD32write --bs=256k --iodepth=32 --rw=randwrite
--name=128KQD32write --bs=128k --iodepth=32 --rw=randwrite
--name=64KQD32write --bs=64k --iodepth=32 --rw=randwrite
--name=32KQD32write --bs=32k --iodepth=32 --rw=randwrite
--name=16KQD32write --bs=16k --iodepth=32 --rw=randwrite
--name=8KQD32write --bs=8k --iodepth=32 --rw=randwrite
--name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite
| grep -E 'read|write|test' | grep -v ioengine

เจงเจฟเจ†เจจ เจจเจพเจฒ! เจธเจฐเฉ‹เจค!เจ‡เจน เจ•เฉ‹เจก 36 เจตเฉฑเจ–-เจตเฉฑเจ– เจŸเฉˆเจธเจŸ เจšเจฒเจพเจเจ—เจพ, เจนเจฐเฉ‡เจ• 4 เจธเจ•เจฟเฉฐเจŸ เจฒเจˆ เจšเฉฑเจฒเฉ‡เจ—เจพเฅค เจ…เฉฑเจงเฉ‡ เจŸเฉˆเจธเจŸ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจฒเจˆ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจคเฉเจธเฉ€เจ‚ NVMe 'เจคเฉ‡ 4 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ•เฉเจ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค 3 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจคเฉฑเจ•เฅค เจ‡เจธ เจฒเจˆ, เจฒเจฟเจ–เจคเฉ€ เจŸเฉˆเจธเจŸเจพเจ‚ เจฆเฉ€ เจนเจฐเฉ‡เจ• เจฆเฉŒเฉœ เจคเฉเจนเจพเจกเฉ‡ เจคเฉ‹เจ‚ 216 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ SSD เจธเจฐเฉ‹เจค เจ–เจพ เจธเจ•เจฆเฉ€ เจนเฉˆ.

เจชเฉœเฉเจนเจจเจพ เจ…เจคเฉ‡ เจฒเจฟเจ–เจฃเจพ เจฎเจฟเจธเจผเจฐเจค?เจนเจพเจ‚เฅค เจชเฉœเฉเจนเจจ เจ…เจคเฉ‡ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจŸเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเจฒเจพเจ‰เจฃเจพ เจธเจฎเจเจฆเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจธเจฎเจเจฆเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจฐเฉ‡ เจ•เฉˆเจš เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจพเจˆเจœเจผ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ เจคเจพเจ‚ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉ€เจคเฉ€ เจฒเจฟเจ–เจค เจชเฉœเฉเจนเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจค เจจเจพ เจ•เจฐเฉ‡เฅค

เจ•เฉˆเจธเจผ เจ…เจคเฉ‡ เจชเจคเจฒเฉ‡ เจตเฉŒเจฒเจฏเฉ‚เจฎ เจญเจฐเจจ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ‡ เจฒเจพเจ‚เจš เจ…เจคเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเฉ‡ เจฌเจนเฉเจค เจตเฉฑเจ–เจฐเฉ‡ เจนเฉ‹เจฃเจ—เฉ‡, เจ…เจคเฉ‡ เจ‡เจน เจตเฉ€ เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจธเจฟเจธเจŸเจฎ เจ†เจ–เจฐเฉ€ เจฒเจพเจ‚เจš เจฆเฉŒเจฐเจพเจจ เจญเจฐเฉ‡ เจ—เจ เจ•เฉˆเจšเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹เจ‡เจ† เจธเฉ€เฅค

เจนเฉ‹เจฐ เจšเฉ€เจœเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจชเฉ‚เจฐเฉ€ เจชเจคเจฒเฉ€ เจตเจพเจฒเฉ€เจ…เจฎ 'เจคเฉ‡ เจ—เจคเฉ€ เจจเฉ‚เฉฐ เจฎเจพเจชเจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจœเจฟเจธ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจนเฉเจฃเฉ‡ เจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€. เจฒเฉ‡เจ–เจ• เจจเฉ‚เฉฐ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฆเจพ เจฎเฉŒเจ•เจพ เจฎเจฟเจฒเจฟเจ† เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฒเจฟเจ–เจคเจพเจ‚ เจชเจนเจฟเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจคเฉเจฐเฉฐเจค เจฌเจพเจ…เจฆ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจคเฉ‡เจœเจผ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ–เจพเจธ เจ•เจฐเจ•เฉ‡ เจœเจฆเฉ‹เจ‚ เจ•เฉˆเจธเจผ เจ…เจœเฉ‡ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจญเจฐเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจ‡เจน เจ•เจพเจชเฉ€-เจ†เจจ-เจฐเจพเจˆเจŸ เจฐเจพเจˆเจŸ เจธเจฟเจฎเฉˆเจจเจŸเจฟเจ•เจธ, เจ•เฉˆเจธเจผ เจฆเฉ€ เจ…เจฒเจพเจˆเจจเจฎเฉˆเจ‚เจŸ เจ…เจคเฉ‡ เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจฒเจพเจ•เจพเจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจคเฉฑเจฅ เจ•เจฟ RAID 6 เจฒเจˆ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฒเจฟเจ–เจค RAID 6 เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฐเฉ€เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฒเจฟเจ–เจฃเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจพเจกเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš, RAID 6 เจคเฉ‹เจ‚ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฐเฉ€เจกเจฟเฉฐเจ— เจฒเจฟเจ–เจฃ เจจเจพเจฒเฉ‹เจ‚ 6 เจ—เฉเจฃเจพ (เจเจฐเฉ‡ เจตเจฟเฉฑเจš SATA SSDs เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€) เจคเฉฑเจ• เจคเฉ‡เจœเจผ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ CoW เจฒเจˆ เจฌเจฒเจพเจ• เจ‡เฉฑเจ• เจชเจคเจฒเฉ‡ เจชเฉ‚เจฒ เจคเฉ‹เจ‚ เจ•เฉเจฐเจฎเจตเจพเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจซเจฟเจฐ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ—, เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเฉ‡ เจฒเจˆ, เจตเฉ€ เจ•เฉเจฐเจฎเจตเจพเจฐ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เจน เจฆเฉ‹เจตเฉ‡เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจฒเจˆ เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจ•เฉˆเจธเจผ "เจธเฉฐเจ—เจ เจฟเจค" เจธเจจเฉˆเจชเจธเจผเจพเจŸ

เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ/เจจเฉเจ•เจธเจพเจจ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฆเฉ‡ เจœเฉ‹เจ–เจฎ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ, เจฒเฉ‡เจ–เจ• เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ…เจ–เฉฐเจกเจคเจพ เจฆเฉ€ เจ—เจพเจฐเฉฐเจŸเฉ€ เจฆเฉ‡เจฃ เจฒเจˆ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเฉ‚เฉฐ เจ˜เฉเฉฐเจฎเจพเจ‰เจฃ เจฆเฉ€ เจชเฉเจฐเจฅเจพ เจจเฉ‚เฉฐ เจชเฉ‡เจธเจผ เจ•เจฐเจจ เจฆเจพ เจชเฉเจฐเจธเจคเจพเจต เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพเจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจชเจคเจฒเจพ เจตเฉŒเจฒเจฏเฉ‚เจฎ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจ‡เฉฑเจ• เจ…เจฃเจ•เฉˆเจธเจผเจก เจกเจฟเจตเจพเจˆเจธ 'เจคเฉ‡ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ, เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจ‡เจ•เจธเจพเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจธเฉฐเจญเจพเจตเจฟเจค เจจเฉเจ•เจธเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŸเจพ เจฌเจฒเจพเจ•เจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ…เจฒเฉฑเจ— เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ เจšเฉฑเจ•เจฐ เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเฉ‡ เจ…เฉฐเจฆเจฐเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฆเฉ€ เจ—เจฐเฉฐเจŸเฉ€ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

  1. เจจเจพเจฎ <name> เจจเจพเจฒ เจนเจฐเฉ‡เจ• เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฒเจˆ, <name>. cached เจจเจพเจฎ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ“
  2. เจšเจฒเฉ‹ เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจœเจฌ เจ‰เฉฑเจš เจฎเฉเฉฑเจฒ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ€เจ: #lvchange --quiet --cachesettings "migration_threshold=16384" cache/cachedata
  3. เจฒเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจ—เฉฐเจฆเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚: #lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}' เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ…เจธเฉ€เจ‚ เจœเจผเฉ€เจฐเฉ‹ เจจเจนเฉ€เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡เฅค เจœเฉ‡ เจœเจผเฉ€เจฐเฉ‹ เจฌเจนเฉเจค เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ—เฉเฉฐเจฎ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจฐเจœเจผเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฐเจพเจˆเจŸเจฅเจฐเฉ‚ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจ•เฉ‡ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจพเจกเฉ‡ SATA เจ…เจคเฉ‡ NVMe SSD เจเจฐเฉ‡ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ TBW เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจชเฉ€เจก เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจคเฉเจธเฉ€เจ‚ เจœเจพเจ‚ เจคเจพเจ‚ เจ•เฉˆเจธเจผ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจฌเจฆเจฒเฉ‡ เจฌเจฟเจจเจพเจ‚ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจชเจฒ เจจเฉ‚เฉฐ เจซเฉœเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‹เจ—เฉ‡, เจœเจพเจ‚ เจคเฉเจนเจพเจกเจพ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ†เจชเจฃเฉ‡ เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ–เจพ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ•เฉเจ เจฆเจฟเจจ. เจธเจฐเฉ‹เจค เจธเฉ€เจฎเจพเจตเจพเจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจธเจฟเจธเจŸเจฎ, เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจนเจฐ เจธเจฎเฉ‡เจ‚ 100% เจฐเจพเจˆเจŸ เจฒเฉ‹เจก เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจ…เจธเจฎเจฐเฉฑเจฅ เจนเฉˆเฅค เจธเจพเจกเฉ‡ NVMe SSDs 100% เจฐเจพเจˆเจŸ เจฒเฉ‹เจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เจคเจฎ เจ•เจฐ เจฆเฉ‡เจฃเจ—เฉ‡ เจฆเจฟเจจ เจฆเฉ‡ 3-4. SATA SSDs เจธเจฟเจฐเจซเจผ เจฆเฉเฉฑเจ—เจฃเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉฑเจ• เจšเฉฑเจฒเจฃเจ—เฉ‡เฅค เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เจน เจฎเฉฐเจจ เจฒเจตเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจฒเฉ‹เจก เจชเฉœเฉเจนเจจ เจฒเจˆ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฒเจฟเจ–เจฃ เจฒเจˆ เจ”เจธเจคเจจ เจ˜เฉฑเจŸ เจฒเฉ‹เจก เจฆเฉ‡ เจจเจพเจฒ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจฌเจฐเจธเจŸ เจนเจจเฅค
  4. เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจœเจผเฉ€เจฐเฉ‹ เจซเฉœเจฟเจ† (เจœเจพเจ‚ เจฌเจฃเจพเจ‡เจ†), เจ…เจธเฉ€เจ‚ <name>.cached เจจเฉ‚เฉฐ <name>.committed เจจเจพเจฎ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพเฅค เจชเฉเจฐเจพเจฃเฉ€ <name>.committed เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  5. เจตเจฟเจ•เจฒเจชเจฟเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจœเฉ‡เจ•เจฐ เจ•เฉˆเจธเจผ 100% เจญเจฐเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉเจ†เจฐเจพ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เฉฑเจงเฉ‡-เจ–เจพเจฒเฉ€ เจ•เฉˆเจธเจผ เจฆเฉ‡ เจจเจพเจฒ, เจฒเจฟเจ–เจฃ เจตเฉ‡เจฒเฉ‡ เจธเจฟเจธเจŸเจฎ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  6. เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจจเฉ‚เฉฐ เจœเจผเฉ€เจฐเฉ‹ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹: #lvchange --quiet --cachesettings "migration_threshold=0" cache/cachedata เจ‡เจน เจ…เจธเจฅเจพเจˆ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจฎเฉเฉฑเจ– เจฎเฉ€เจกเฉ€เจ† เจจเจพเจฒ เจธเจฎเจ•เจพเจฒเฉ€ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เฉ‡เจ—เจพเฅค
  7. เจ…เจธเฉ€เจ‚ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ #lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}' เจœเจพเจ‚ เจŸเจพเจˆเจฎเจฐ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค
  8. เจ…เจธเฉ€เจ‚ เจฆเฉเจฌเจพเจฐเจพ เจฆเฉเจนเจฐเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚.

เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจจเจพเจฒ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจ•เจฟเจ‰เจ‚...?เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ…เจธเจฒ เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• "เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ" เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ 4 เจ•เจฟเจฒเฉ‹เจฌเจพเจˆเจŸ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจธเฉˆเจ•เจŸเจฐ เจฒเจˆ เจ•เฉเจ เจฒเจฟเจ–เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธ เจ—เฉฑเจฒ เจฆเฉ€ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ เจ…เจ—เจฒเฉ‡ เจ•เฉเจ เจฎเจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฐเจฟเจ•เจพเจฐเจก เจ‰เจธเฉ‡ เจœเจพเจ‚ เจ‡เฉฑเจ• เจ—เฉเจ†เจ‚เจขเฉ€ (+- 32K) เจธเฉˆเจ•เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจจเฉ‚เฉฐ เจœเจผเฉ€เจฐเฉ‹ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡, เจ…เจธเฉ€เจ‚ SATA SSD 'เจคเฉ‡ เจฐเจพเจˆเจŸ เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฎเฉเจฒเจคเจตเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉˆเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• 64K เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš เจ•เจˆ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน SATA SSD เจฆเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจšเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เฉ‹เจก เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ..?เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจฒเฉ‡เจ–เจ• เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจตเจฟเฉฑเจš เจจเจพเจ•เจพเจซเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจธเจฎเจเจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน 100% เจธเจตเฉˆ-เจธเจฟเจ–เจฟเจ…เจค เจนเฉˆ เจ…เจคเฉ‡ "เจ—เฉ‚เจ—เจฒ" เจฆเฉเจ†เจฐเจพ เจšเจฒเจพเจ เจœเจพเจฃ เจตเจพเจฒเฉ‡ เจตเจฟเจ•เจพเจธ เจฆเจพ เจ…เจญเจฟเจ†เจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ‰เจน เจฎเฉฐเจจเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจธเจฆเฉ‡ เจนเฉฑเจฅเฉ‹เจ‚ เจจเจฟเจ•เจฒเจฃ เจตเจพเจฒเฉ‡ เจญเจฟเจ†เจจเจ• เจ•เฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€เฅค เจนเฉ‹เจฐเฅค

เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เจธ เจ–เฉ‡เจคเจฐ เจฆเฉ‡ เจชเฉ‡เจธเจผเฉ‡เจตเจฐ เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ เจคเจฐเจ• เจจเฉ‚เฉฐ เจธเฉเจคเฉฐเจคเจฐ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ‰เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡, เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡, เจ…เจคเฉ‡, เจธเจผเจพเจ‡เจฆ, เจ‡เจธ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎเจก เจธเฉ‡เจตเจพ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเจพเจฒ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฒเฉ‡เจ–เจ• เจจเฉ‡ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค

เจ…เจœเจฟเจนเฉ€ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ เจธเจ•เฉ€เจฎ เจธเจพเจจเฉ‚เฉฐ เจจเจพ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเฉ‚เฉฐ SATA SSD 'เจคเฉ‡ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจ•เจพเจฒเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€, เจธเจ—เฉ‹เจ‚ เจธเจพเจจเฉ‚เฉฐ thin_delta เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡, เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจตเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€ เจ•เจฟ เจ‡เจธ เจฆเฉ‡ เจฌเจฃเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฟเจนเฉœเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจจเฉเจ•เจธเจพเจจ เจฆเจพ เจธเจฅเจพเจจเฉ€เจ•เจฐเจจ เจ•เจฐเฉ‹เฅค เจฎเฉเฉฑเจ– เจตเฉŒเจฒเจฏเฉ‚เจฎ, เจฐเจฟเจ•เจตเจฐเฉ€ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

libvirt/KVM เจตเจฟเฉฑเจš เจŸเฉเจฐเจฟเจฎ/เจกเจฟเจธเจ•เจพเจฐเจก

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจกเจพเจŸเจพ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจจเฉ‚เฉฐ KVM เจšเฉฑเจฒ เจฐเจนเฉ‡ libvirt เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ, เจคเจพเจ‚ เจ‡เจน เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเจฟเจšเจพเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ VM เจจเฉ‚เฉฐ เจจเจพ เจธเจฟเจฐเจซเจผ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฒเฉˆเจฃเฉ€ เจธเจฟเจ–เจพเจˆเจ, เจธเจ—เฉ‹เจ‚ เจ‰เจธ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจ•เจฐเจจ เจฒเจˆ เจตเฉ€ เจœเจฟเจธเจฆเฉ€ เจนเฉเจฃ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‡เจน เจตเจฐเจšเฉเจ…เจฒ เจกเจฟเจธเจ•เจพเจ‚ 'เจคเฉ‡ TRIM/DISCARD เจธเจฎเจฐเจฅเจจ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฆเฉ€ เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ virtio-scsi เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจ…เจคเฉ‡ xml เจจเฉ‚เฉฐ เจธเฉ‹เจงเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

#virsh edit vmname
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='writethrough' io='threads' discard='unmap'/>
<source dev='/dev/images/vmname'/>
<backingStore/>
<target dev='sda' bus='scsi'/>
<alias name='scsi0-0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>

<controller type='scsi' index='0' model='virtio-scsi'>
<alias name='scsi0'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</controller>

เจ—เฉˆเจธเจŸ OS เจคเฉ‹เจ‚ เจ…เจœเจฟเจนเฉ‡ เจกเจฟเจธเจ•เจพเจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ LVM เจฆเฉเจ†เจฐเจพ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจ…เจคเฉ‡ เจชเจคเจฒเฉ‡ เจชเฉ‚เจฒ เจฆเฉ‹เจตเจพเจ‚ เจตเจฟเฉฑเจš เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจฎเฉเจ•เจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ‡เจน เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฆเฉ‡เจฐเฉ€ เจจเจพเจฒ เจตเจพเจชเจฐเจฆเจพ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ…เจ—เจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹เฅค

BTRFS เจฌเฉˆเจ•เจ…เฉฑเจช

เจจเจพเจฒ เจคเจฟเจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ เจ…เจคเจฟ เจธเจพเจตเจงเจพเจจเฉ€ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ เจœเฉ‹เจ–เจฎ 'เจคเฉ‡. เจฒเฉ‡เจ–เจ• เจจเฉ‡ เจ‡เจน เจ•เฉ‹เจก เจ†เจชเจฃเฉ‡ เจ†เจช เจ…เจคเฉ‡ เจธเจฟเจฐเจซเจผ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจนเฉ€ เจฒเจฟเจ–เจฟเจ† เจนเฉˆเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉˆ เจ•เจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจคเจœเจฐเจฌเฉ‡เจ•เจพเจฐ เจฒเฉ€เจจเจ•เจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจ•เฉ‹เจฒ เจธเจฎเจพเจจ เจธเจพเจงเจจ เจนเจจ, เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจ†เจ‰ เจฌเฉˆเจ•เจ…เฉฑเจช เจกเจฟเจตเจพเจˆเจธ เจคเฉ‡ เจ‡เฉฑเจ• เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจฃเจพเจˆเจ:

#lvcreate -L 256G --name backup backup

เจ†เจ“ เจ‡เจธเจจเฉ‚เฉฐ BTRFS เจตเจฟเฉฑเจš เจซเจพเจฐเจฎเฉˆเจŸ เจ•เจฐเฉ€เจ:

#mkfs.btrfs /dev/backup/backup

เจ†เจ‰ เจฎเจพเจŠเจ‚เจŸ เจชเฉเจ†เจ‡เฉฐเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจฐเฉ‚เจŸ เจ‰เจช เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

#mkdir /backup
#mkdir /backup/btrfs
#mkdir /backup/btrfs/root
#mkdir /backup/btrfs/back
#ln -s /boot /backup/btrfs
# cat >>/etc/fstab << EOF

/dev/mapper/root-root /backup/btrfs/root btrfs defaults,space_cache,noatime,nodiratime 0 2
/dev/mapper/backup-backup /backup/btrfs/back btrfs defaults,space_cache,noatime,nodiratime 0 2
EOF
#mount -a
#update-initramfs -u
#update-grub

เจ†เจ“ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเจˆ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจˆเจ:

#mkdir /backup/btrfs/back/remote
#mkdir /backup/btrfs/back/remote/root
#mkdir /backup/btrfs/back/remote/boot

เจ†เจ“ เจฌเฉˆเจ•เจ…เฉฑเจช เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฌเจฃเจพเจˆเจ:

#mkdir /root/btrfs-backup

เจ†เจ‰ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ€เจ:

เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเจฐเจพเจ‰เจฃเฉ‡ เจฌเฉˆเจธเจผ เจ•เฉ‹เจก. เจ†เจชเจฃเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ เจœเฉ‹เจ–เจฎ 'เจคเฉ‡ เจตเจฐเจคเฉ‹. เจฒเฉ‡เจ–เจ• เจจเฉ‚เฉฐ เจจเจพเจฐเจพเจœเจผ เจšเจฟเฉฑเจ เฉ€เจ†เจ‚ เจจเจพ เจฒเจฟเจ–เฉ‹...#cat >/root/btrfs-backup/btrfs-backup.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

LOCK_FILE="/dev/shm/$SCRIPT_NAME.lock"
DATE_PREFIX='%Y-%m-%d'
DATE_FORMAT=$DATE_PREFIX'-%H-%M-%S'
DATE_REGEX='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
BASE_SUFFIX=".@base"
PEND_SUFFIX=".@pend"
SNAP_SUFFIX=".@snap"
MOUNTS="/backup/btrfs/"
BACKUPS="/backup/btrfs/back/remote/"

function terminate ()
{
echo "$1" >&2
exit 1
}

function wait_lock()
{
flock 98
}

function wait_lock_or_terminate()
{
echo "Wating for lock..."
wait_lock || terminate "Failed to get lock. Exiting..."
echo "Got lock..."
}

function suffix()
{
FORMATTED_DATE=$(date +"$DATE_FORMAT")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function filter()
{
FORMATTED_DATE=$(date --date="$1" +"$DATE_PREFIX")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function backup()
{
SOURCE_PATH="$MOUNTS$1"
TARGET_PATH="$BACKUPS$1"
SOURCE_BASE_PATH="$MOUNTS$1$BASE_SUFFIX"
TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
TARGET_BASE_DIR="$(dirname $TARGET_BASE_PATH)"
SOURCE_PEND_PATH="$MOUNTS$1$PEND_SUFFIX"
TARGET_PEND_PATH="$BACKUPS$1$PEND_SUFFIX"
if [ -d "$SOURCE_BASE_PATH" ] then
echo "$SOURCE_BASE_PATH found"
else
echo "$SOURCE_BASE_PATH File not found creating snapshot of $SOURCE_PATH to $SOURCE_BASE_PATH"
btrfs subvolume snapshot -r $SOURCE_PATH $SOURCE_BASE_PATH
sync
if [ -d "$TARGET_BASE_PATH" ] then
echo "$TARGET_BASE_PATH found out of sync with source... removing..."
btrfs subvolume delete -c $TARGET_BASE_PATH
sync
fi
fi
if [ -d "$TARGET_BASE_PATH" ] then
echo "$TARGET_BASE_PATH found"
else
echo "$TARGET_BASE_PATH not found. Synching to $TARGET_BASE_DIR"
btrfs send $SOURCE_BASE_PATH | btrfs receive $TARGET_BASE_DIR
sync
fi
if [ -d "$SOURCE_PEND_PATH" ] then
echo "$SOURCE_PEND_PATH found removing..."
btrfs subvolume delete -c $SOURCE_PEND_PATH
sync
fi
btrfs subvolume snapshot -r $SOURCE_PATH $SOURCE_PEND_PATH
sync
if [ -d "$TARGET_PEND_PATH" ] then
echo "$TARGET_PEND_PATH found removing..."
btrfs subvolume delete -c $TARGET_PEND_PATH
sync
fi
echo "Sending $SOURCE_PEND_PATH to $TARGET_PEND_PATH"
btrfs send -p $SOURCE_BASE_PATH $SOURCE_PEND_PATH | btrfs receive $TARGET_BASE_DIR
sync
TARGET_DATE_SUFFIX=$(suffix)
btrfs subvolume snapshot -r $TARGET_PEND_PATH "$TARGET_PATH$TARGET_DATE_SUFFIX"
sync
btrfs subvolume delete -c $SOURCE_BASE_PATH
sync
btrfs subvolume delete -c $TARGET_BASE_PATH
sync
mv $SOURCE_PEND_PATH $SOURCE_BASE_PATH
mv $TARGET_PEND_PATH $TARGET_BASE_PATH
sync
}

function list()
{
LIST_TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
LIST_TARGET_BASE_DIR="$(dirname $LIST_TARGET_BASE_PATH)"
LIST_TARGET_BASE_NAME="$(basename -s .$BASE_SUFFIX $LIST_TARGET_BASE_PATH)"
find "$LIST_TARGET_BASE_DIR" -maxdepth 1 -mindepth 1 -type d -printf "%fn" | grep "${LIST_TARGET_BASE_NAME/$BASE_SUFFIX/$SNAP_SUFFIX}.$DATE_REGEX"
}

function remove()
{
REMOVE_TARGET_BASE_PATH="$BACKUPS$1$BASE_SUFFIX"
REMOVE_TARGET_BASE_DIR="$(dirname $REMOVE_TARGET_BASE_PATH)"
btrfs subvolume delete -c $REMOVE_TARGET_BASE_DIR/$2
sync
}

function removeall()
{
DATE_OFFSET="$2"
FILTER="$(filter "$DATE_OFFSET")"
while read -r SNAPSHOT ; do
remove "$1" "$SNAPSHOT"
done < <(list "$1" | grep "$FILTER")

}

(
COMMAND="$1"
shift

case "$COMMAND" in
"--help")
echo "Help"
;;
"suffix")
suffix
;;
"filter")
filter "$1"
;;
"backup")
wait_lock_or_terminate
backup "$1"
;;
"list")
list "$1"
;;
"remove")
wait_lock_or_terminate
remove "$1" "$2"
;;
"removeall")
wait_lock_or_terminate
removeall "$1" "$2"
;;
*)
echo "None.."
;;
esac
) 98>$LOCK_FILE

EOF

เจ‡เจน เจตเฉ€ เจ•เฉ€ เจ•เจฐเจฆเจพ..?BTRFS เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ BTRFS เจญเฉ‡เจœเจฃ/เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ FS 'เจคเฉ‡ เจ•เจพเจชเฉ€ เจ•เจฐเจจ เจฒเจˆ เจธเจงเจพเจฐเจจ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจธเจผเจพเจฎเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพ เจฒเจพเจ‚เจš เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจฒเฉฐเจฌเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš, เจธเจพเจฐเจพ เจกเจพเจŸเจพ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ. เจนเฉ‹เจฐ เจฒเจพเจ‚เจš เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจนเฉ‹เจฃเจ—เฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจธเจฟเจฐเจซเจผ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจนเฉ€ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ•เฉเจฐเฉ‹เจจ เจตเจฟเฉฑเจš เจชเจพเจตเจพเจ‚เจ—เฉ‡:

เจ•เฉเจ เจนเฉ‹เจฐ เจฌเฉˆเจธเจผ เจ•เฉ‹เจก#cat >/root/btrfs-backup/cron-daily.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

BACKUP_SCRIPT="$SCRIPT_DIR/btrfs-backup.sh"
RETENTION="-60 day"
$BACKUP_SCRIPT backup root/@
$BACKUP_SCRIPT removeall root/@ "$RETENTION"
$BACKUP_SCRIPT backup root/@home
$BACKUP_SCRIPT removeall root/@home "$RETENTION"
$BACKUP_SCRIPT backup boot/
$BACKUP_SCRIPT removeall boot/ "$RETENTION"
EOF

เจ‡เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ..?เจฌเฉˆเจ•เจ…เฉฑเจช FS 'เจคเฉ‡ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง BTRFS เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ‡ เจตเจพเจงเฉ‡ เจตเจพเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจ…เจคเฉ‡ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เจน 60 เจฆเจฟเจจ เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจ—เจˆเจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจธเจตเฉ€เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจกเจฟเจฒเฉ€เจŸ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฒเจพเจ‚เจš เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ‡ เจฎเจฟเจคเฉ€ เจตเจพเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ /backup/btrfs/back/remote/ เจธเจฌ-เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเจ—เฉ‡เฅค

เจšเจฒเฉ‹ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจ…เจงเจฟเจ•เจพเจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚:

#chmod +x /root/btrfs-backup/cron-daily.sh
#chmod +x /root/btrfs-backup/btrfs-backup.sh

เจšเจฒเฉ‹ เจ‡เจธเจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจจ เจตเจฟเฉฑเจš เจชเจพเจˆเจ:

#/usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/btrfs-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t btrfs-backup
#cat /var/log/syslog | grep btrfs-backup
#crontab -e
0 2 * * * /usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/btrfs-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t btrfs-backup

LVM เจชเจคเจฒเจพ เจฌเฉˆเจ•เจ…เฉฑเจช

เจ†เจ‰ เจฌเฉˆเจ•เจ…เฉฑเจช เจกเจฟเจตเจพเจˆเจธ เจคเฉ‡ เจ‡เฉฑเจ• เจชเจคเจฒเจพ เจชเฉ‚เจฒ เจฌเจฃเจพเจˆเจ:

#lvcreate -L 274877906944B --poolmetadataspare y --poolmetadatasize 4294967296B --chunksize 64k -Z y -T backup/thin-pool

เจšเจฒเฉ‹ ddrescue เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ€เจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจธเจ•เฉเจฐเจฟเจชเจŸ เจ‡เจธ เจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‡เจ—เฉ€:

#apt-get install gddrescue

เจ†เจ‰ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฌเจฃเจพเจˆเจ:

#mkdir /root/lvm-thin-backup

เจ†เจ‰ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ€เจ:

เจ…เฉฐเจฆเจฐเฉ‹เจ‚ เจฌเจนเฉเจค เจงเฉฑเจ•เจพ...#cat >/root/lvm-thin-backup/lvm-thin-backup.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

LOCK_FILE="/dev/shm/$SCRIPT_NAME.lock"
DATE_PREFIX='%Y-%m-%d'
DATE_FORMAT=$DATE_PREFIX'-%H-%M-%S'
DATE_REGEX='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
BASE_SUFFIX=".base"
PEND_SUFFIX=".pend"
SNAP_SUFFIX=".snap"
BACKUPS="backup"
BACKUPS_POOL="thin-pool"

export LVM_SUPPRESS_FD_WARNINGS=1

function terminate ()
{
echo "$1" >&2
exit 1
}

function wait_lock()
{
flock 98
}

function wait_lock_or_terminate()
{
echo "Wating for lock..."
wait_lock || terminate "Failed to get lock. Exiting..."
echo "Got lock..."
}

function suffix()
{
FORMATTED_DATE=$(date +"$DATE_FORMAT")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function filter()
{
FORMATTED_DATE=$(date --date="$1" +"$DATE_PREFIX")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}

function read_thin_id {
lvs --rows --reportformat basic --quiet -othin_id "$1/$2" | awk '{print $2}'
}

function read_pool_lv {
lvs --rows --reportformat basic --quiet -opool_lv "$1/$2" | awk '{print $2}'
}

function read_lv_dm_path {
lvs --rows --reportformat basic --quiet -olv_dm_path "$1/$2" | awk '{print $2}'
}

function read_lv_active {
lvs --rows --reportformat basic --quiet -olv_active "$1/$2" | awk '{print $2}'
}

function read_lv_chunk_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -ochunk_size "$1/$2" | awk '{print $2}'
}

function read_lv_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -olv_size "$1/$2" | awk '{print $2}'
}

function activate_volume {
lvchange -ay -Ky "$1/$2"
}

function deactivate_volume {
lvchange -an "$1/$2"
}

function read_thin_metadata_snap {
dmsetup status "$1" | awk '{print $7}'
}

function thindiff()
{
DIFF_VG="$1"
DIFF_SOURCE="$2"
DIFF_TARGET="$3"
DIFF_SOURCE_POOL=$(read_pool_lv $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_POOL=$(read_pool_lv $DIFF_VG $DIFF_TARGET)

if [ "$DIFF_SOURCE_POOL" == "" ] then
(>&2 echo "Source LV is not thin.")
exit 1
fi

if [ "$DIFF_TARGET_POOL" == "" ] then
(>&2 echo "Target LV is not thin.")
exit 1
fi

if [ "$DIFF_SOURCE_POOL" != "$DIFF_TARGET_POOL" ] then
(>&2 echo "Source and target LVs belong to different thin pools.")
exit 1
fi

DIFF_POOL_PATH=$(read_lv_dm_path $DIFF_VG $DIFF_SOURCE_POOL)
DIFF_SOURCE_ID=$(read_thin_id $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_ID=$(read_thin_id $DIFF_VG $DIFF_TARGET)
DIFF_POOL_PATH_TPOOL="$DIFF_POOL_PATH-tpool"
DIFF_POOL_PATH_TMETA="$DIFF_POOL_PATH"_tmeta
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)

if [ "$DIFF_POOL_METADATA_SNAP" != "-" ] then
(>&2 echo "Thin pool metadata snapshot already exist. Assuming stale one. Will release metadata snapshot in 5 seconds.")
sleep 5
dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap
fi

dmsetup message $DIFF_POOL_PATH_TPOOL 0 reserve_metadata_snap
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)

if [ "$DIFF_POOL_METADATA_SNAP" == "-" ] then
(>&2 echo "Failed to create thin pool metadata snapshot.")
exit 1
fi

#We keep output in variable because metadata snapshot need to be released early.
DIFF_DATA=$(thin_delta -m$DIFF_POOL_METADATA_SNAP --snap1 $DIFF_SOURCE_ID --snap2 $DIFF_TARGET_ID $DIFF_POOL_PATH_TMETA)

dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap

echo $"$DIFF_DATA" | grep -E 'different|left_only|right_only' | sed 's/</"/g' | sed 's/ /"/g' | awk -F'"' '{print $6 "t" $8 "t" $11}' | sed 's/different/copy/g' | sed 's/left_only/copy/g' | sed 's/right_only/discard/g'

}

function thinsync()
{
SYNC_VG="$1"
SYNC_PEND="$2"
SYNC_BASE="$3"
SYNC_TARGET="$4"
SYNC_PEND_POOL=$(read_pool_lv $SYNC_VG $SYNC_PEND)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SYNC_VG $SYNC_PEND_POOL)
SYNC_PEND_PATH=$(read_lv_dm_path $SYNC_VG $SYNC_PEND)

activate_volume $SYNC_VG $SYNC_PEND

while read -r SYNC_ACTION SYNC_OFFSET SYNC_LENGTH ; do
SYNC_OFFSET_BYTES=$((SYNC_OFFSET * SYNC_BLOCK_SIZE))
SYNC_LENGTH_BYTES=$((SYNC_LENGTH * SYNC_BLOCK_SIZE))
if [ "$SYNC_ACTION" == "copy" ] then
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SYNC_PEND_PATH" "$SYNC_TARGET"
fi

if [ "$SYNC_ACTION" == "discard" ] then
blkdiscard -o $SYNC_OFFSET_BYTES -l $SYNC_LENGTH_BYTES "$SYNC_TARGET"
fi
done < <(thindiff "$SYNC_VG" "$SYNC_PEND" "$SYNC_BASE")
}

function discard_volume()
{
DISCARD_VG="$1"
DISCARD_LV="$2"
DISCARD_LV_PATH=$(read_lv_dm_path "$DISCARD_VG" "$DISCARD_LV")
if [ "$DISCARD_LV_PATH" != "" ] then
echo "$DISCARD_LV_PATH found"
else
echo "$DISCARD_LV not found in $DISCARD_VG"
exit 1
fi
DISCARD_LV_POOL=$(read_pool_lv $DISCARD_VG $DISCARD_LV)
DISCARD_LV_SIZE=$(read_lv_size "$DISCARD_VG" "$DISCARD_LV")
lvremove -y --quiet "$DISCARD_LV_PATH" || exit 1
lvcreate --thin-pool "$DISCARD_LV_POOL" -V "$DISCARD_LV_SIZE"B --name "$DISCARD_LV" "$DISCARD_VG" || exit 1
}

function backup()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
SOURCE_PEND_LV="$SOURCE_LV$PEND_SUFFIX"
TARGET_PEND_LV="$TARGET_LV$PEND_SUFFIX"
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "Source base not found creating snapshot of $SOURCE_VG/$SOURCE_LV to $SOURCE_VG/$SOURCE_BASE_LV"
lvcreate --quiet --snapshot --name "$SOURCE_BASE_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo "Discarding $SOURCE_BASE_LV_PATH as we need to bootstrap."
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
sync
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found out of sync with source... removing..."
lvremove -y --quiet $TARGET_BASE_LV_PATH || exit 1
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
sync
fi
fi
SOURCE_BASE_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_BASE_LV")
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_VG/$TARGET_LV not found. Creating empty volume."
lvcreate --thin-pool "$BACKUPS_POOL" -V "$SOURCE_BASE_SIZE"B --name "$TARGET_BASE_LV" "$TARGET_VG" || exit 1
echo "Have to rebootstrap. Discarding source at $SOURCE_BASE_LV_PATH"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
TARGET_BASE_POOL=$(read_pool_lv $TARGET_VG $TARGET_BASE_LV)
TARGET_BASE_CHUNK_SIZE=$(read_lv_chunk_size $TARGET_VG $TARGET_BASE_POOL)
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
echo "Discarding target at $TARGET_BASE_LV_PATH"
discard_volume "$TARGET_VG" "$TARGET_BASE_LV"
sync
fi
if [ "$SOURCE_PEND_LV_PATH" != "" ] then
echo "$SOURCE_PEND_LV_PATH found removing..."
lvremove -y --quiet "$SOURCE_PEND_LV_PATH" || exit 1
sync
fi
lvcreate --quiet --snapshot --name "$SOURCE_PEND_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
sync
if [ "$TARGET_PEND_LV_PATH" != "" ] then
echo "$TARGET_PEND_LV_PATH found removing..."
lvremove -y --quiet $TARGET_PEND_LV_PATH
sync
fi
lvcreate --quiet --snapshot --name "$TARGET_PEND_LV" "$TARGET_VG/$TARGET_BASE_LV" || exit 1
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")
SOURCE_PEND_LV_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_PEND_LV")
lvresize -L "$SOURCE_PEND_LV_SIZE"B "$TARGET_PEND_LV_PATH"
activate_volume "$TARGET_VG" "$TARGET_PEND_LV"
echo "Synching $SOURCE_PEND_LV_PATH to $TARGET_PEND_LV_PATH"
thinsync "$SOURCE_VG" "$SOURCE_PEND_LV" "$SOURCE_BASE_LV" "$TARGET_PEND_LV_PATH" || exit 1
sync

TARGET_DATE_SUFFIX=$(suffix)
lvcreate --quiet --snapshot --name "$TARGET_LV$TARGET_DATE_SUFFIX" "$TARGET_VG/$TARGET_PEND_LV" || exit 1
sync
lvremove --quiet -y "$SOURCE_BASE_LV_PATH" || exit 1
sync
lvremove --quiet -y "$TARGET_BASE_LV_PATH" || exit 1
sync
lvrename -y "$SOURCE_VG/$SOURCE_PEND_LV" "$SOURCE_BASE_LV" || exit 1
lvrename -y "$TARGET_VG/$TARGET_PEND_LV" "$TARGET_BASE_LV" || exit 1
sync
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function verify()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo Comparing "$SOURCE_BASE_LV_PATH" with "$TARGET_BASE_LV_PATH"
cmp "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function resync()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")

if [ "$SOURCE_BASE_LV_PATH" != "" ] then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ] then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)

echo Syncronizing "$SOURCE_BASE_LV_PATH" to "$TARGET_BASE_LV_PATH"

CMP_OFFSET=0
while [[ "$CMP_OFFSET" != "" ]] ; do
CMP_MISMATCH=$(cmp -i "$CMP_OFFSET" "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH" | grep differ | awk '{print $5}' | sed 's/,//g' )
if [[ "$CMP_MISMATCH" != "" ]] ; then
CMP_OFFSET=$(( CMP_MISMATCH + CMP_OFFSET ))
SYNC_OFFSET_BYTES=$(( ( CMP_OFFSET / SYNC_BLOCK_SIZE ) * SYNC_BLOCK_SIZE ))
SYNC_LENGTH_BYTES=$(( SYNC_BLOCK_SIZE ))
echo "Synching $SYNC_LENGTH_BYTES bytes at $SYNC_OFFSET_BYTES from $SOURCE_BASE_LV_PATH to $TARGET_BASE_LV_PATH"
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
else
CMP_OFFSET=""
fi
done
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}

function list()
{
LIST_SOURCE_VG="$1"
LIST_SOURCE_LV="$2"
LIST_TARGET_VG="$BACKUPS"
LIST_TARGET_LV="$LIST_SOURCE_VG-$LIST_SOURCE_LV"
LIST_TARGET_BASE_LV="$LIST_TARGET_LV$SNAP_SUFFIX"
lvs -olv_name | grep "$LIST_TARGET_BASE_LV.$DATE_REGEX"
}

function remove()
{
REMOVE_TARGET_VG="$BACKUPS"
REMOVE_TARGET_LV="$1"
lvremove -y "$REMOVE_TARGET_VG/$REMOVE_TARGET_LV"
sync
}

function removeall()
{
DATE_OFFSET="$3"
FILTER="$(filter "$DATE_OFFSET")"
while read -r SNAPSHOT ; do
remove "$SNAPSHOT"
done < <(list "$1" "$2" | grep "$FILTER")

}

(
COMMAND="$1"
shift

case "$COMMAND" in
"--help")
echo "Help"
;;
"suffix")
suffix
;;
"filter")
filter "$1"
;;
"backup")
wait_lock_or_terminate
backup "$1" "$2"
;;
"list")
list "$1" "$2"
;;
"thindiff")
thindiff "$1" "$2" "$3"
;;
"thinsync")
thinsync "$1" "$2" "$3" "$4"
;;
"verify")
wait_lock_or_terminate
verify "$1" "$2"
;;
"resync")
wait_lock_or_terminate
resync "$1" "$2"
;;
"remove")
wait_lock_or_terminate
remove "$1"
;;
"removeall")
wait_lock_or_terminate
removeall "$1" "$2" "$3"
;;
*)
echo "None.."
;;
esac
) 98>$LOCK_FILE

EOF

เจ‡เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ...?เจชเจคเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจจ เจ…เจคเฉ‡ thin_delta เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจฆเฉ‹ เจชเจคเจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจตเจฟเจšเจ•เจพเจฐ เจซเจฐเจ• เจจเฉ‚เฉฐ ddrescue เจ…เจคเฉ‡ blkdiscard เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฌเจฒเจพเจ• เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจฒเจˆ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ•เฉเจฐเฉ‹เจจ เจตเจฟเฉฑเจš เจชเจพเจตเจพเจ‚เจ—เฉ‡:

เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ เจฌเจพเจธเจผ#cat >/root/lvm-thin-backup/cron-daily.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"

BACKUP_SCRIPT="$SCRIPT_DIR/lvm-thin-backup.sh"
RETENTION="-60 days"

$BACKUP_SCRIPT backup images linux-dev
$BACKUP_SCRIPT backup images win8
$BACKUP_SCRIPT backup images win8-data
#etc

$BACKUP_SCRIPT removeall images linux-dev "$RETENTION"
$BACKUP_SCRIPT removeall images win8 "$RETENTION"
$BACKUP_SCRIPT removeall images win8-data "$RETENTION"
#etc

EOF

เจ‡เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ...?เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐเจจ เจฒเจˆ เจชเจฟเจ›เจฒเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจธเจ•เฉเจฐเจฟเจชเจŸ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ‡ เจ…เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจ›เฉฑเจก เจฆเฉ‡เจตเฉ‡เจ—เฉ€, เจœเฉ‹ เจ•เจฟ เจ†เจ–เจฐเฉ€ เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเจจเฅค

เจ‡เจธ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจฒเจˆ เจฌเฉˆเจ•เจ…เฉฑเจช เจ•เจพเจชเฉ€เจ†เจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจจเจพเจฎ เจธเจฟเจฐเจซ เจตเจฟเจ†เจ–เจฟเจ† เจฆเฉ‡ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจ•เจพเจฒเฉ€ เจฌเจฃเจพเจตเฉ‡เจ—เฉ€เฅค

เจ†เจ“ เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ‡เจˆเจ:

#chmod +x /root/lvm-thin-backup/cron-daily.sh
#chmod +x /root/lvm-thin-backup/lvm-thin-backup.sh

เจšเจฒเฉ‹ เจ‡เจธเจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจจ เจตเจฟเฉฑเจš เจชเจพเจˆเจ:

#/usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/lvm-thin-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t lvm-thin-backup
#cat /var/log/syslog | grep lvm-thin-backup
#crontab -e
0 3 * * * /usr/bin/nice -n 19 /usr/bin/ionice -c 3 /root/lvm-thin-backup/cron-daily.sh 2>&1 | /usr/bin/logger -t lvm-thin-backup

เจชเจนเจฟเจฒเจพ เจฒเจพเจ‚เจš เจฒเฉฐเจฌเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจธเจพเจฐเฉ‡ เจตเจฐเจคเฉ€ เจ—เจˆ เจฅเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจ•เฉ‡ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจ•เจพเจฒเฉ€ เจนเฉ‹ เจœเจพเจฃเจ—เฉ‡เฅค LVM เจชเจคเจฒเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, เจ…เจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ‡ เจฌเจฒเจพเจ• เจตเจฐเจคเฉ‹เจ‚ เจตเจฟเฉฑเจš เจนเจจ, เจ‡เจธเจฒเจˆ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจชเจคเจฒเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจฒเจพเจ•เจพเจ‚ เจฆเฉ€ เจนเฉ€ เจจเจ•เจฒ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจ…เจ—เจฒเฉ€เจ†เจ‚ เจฆเฉŒเฉœเจพเจ‚ LVM เจชเจคเจฒเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจฆเฉเจ†เจฐเจพ เจŸเจฐเฉˆเจ•เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจเจ—เฉ‡เฅค

เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เฉ€ เจนเฉ‹เจ‡เจ†:

#time /root/btrfs-backup/cron-daily.sh
real 0m2,967s
user 0m0,225s
sys 0m0,353s

#time /root/lvm-thin-backup/cron-daily.sh
real 1m2,710s
user 0m12,721s
sys 0m6,671s

#ls -al /backup/btrfs/back/remote/*
/backup/btrfs/back/remote/boot:
total 0
drwxr-xr-x 1 root root 1260 ะผะฐั€ 26 09:11 .
drwxr-xr-x 1 root root 16 ะผะฐั€ 6 09:30 ..
drwxr-xr-x 1 root root 322 ะผะฐั€ 26 02:00 .@base
drwxr-xr-x 1 root root 516 ะผะฐั€ 6 09:39 [email protected]
drwxr-xr-x 1 root root 516 ะผะฐั€ 6 09:39 [email protected]
...
/backup/btrfs/back/remote/root:
total 0
drwxr-xr-x 1 root root 2820 ะผะฐั€ 26 09:11 .
drwxr-xr-x 1 root root 16 ะผะฐั€ 6 09:30 ..
drwxr-xr-x 1 root root 240 ะผะฐั€ 26 09:11 @.@base
drwxr-xr-x 1 root root 22 ะผะฐั€ 26 09:11 @home.@base
drwxr-xr-x 1 root root 22 ะผะฐั€ 6 09:39 @[email protected]
drwxr-xr-x 1 root root 22 ะผะฐั€ 6 09:39 @[email protected]
...
drwxr-xr-x 1 root root 240 ะผะฐั€ 6 09:39 @[email protected]
drwxr-xr-x 1 root root 240 ะผะฐั€ 6 09:39 @[email protected]
...

#lvs -olv_name,lv_size images && lvs -olv_name,lv_size backup
LV LSize
linux-dev 128,00g
linux-dev.base 128,00g
thin-pool 1,38t
win8 128,00g
win8-data 2,00t
win8-data.base 2,00t
win8.base 128,00g
LV LSize
backup 256,00g
images-linux-dev.base 128,00g
images-linux-dev.snap.2020-03-08-10-09-11 128,00g
images-linux-dev.snap.2020-03-08-10-09-25 128,00g
...
images-win8-data.base 2,00t
images-win8-data.snap.2020-03-16-14-11-55 2,00t
images-win8-data.snap.2020-03-16-14-19-50 2,00t
...
images-win8.base 128,00g
images-win8.snap.2020-03-17-04-51-46 128,00g
images-win8.snap.2020-03-18-03-02-49 128,00g
...
thin-pool <2,09t

เจ‡เจธ เจฆเจพ เจ†เจฒเฉเจนเจฃเฉ‡ เจฆเฉ€เจ†เจ‚ เจ—เฉเฉฑเจกเฉ€เจ†เจ‚ เจจเจพเจฒ เจ•เฉ€ เจธเจฌเฉฐเจง เจนเฉˆ?

เจฌเจนเฉเจคเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ, เจ•เจฟ LVM LV เจฒเจพเจœเจผเฉ€เจ•เจฒ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‚เจœเฉ‡ VG เจฒเจˆ LVM PV เจญเฉŒเจคเจฟเจ• เจตเจพเจฒเฉ€เจ…เจฎ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค LVM เจ†เจตเจฐเจคเฉ€ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจจเฉ‡เจธเจŸเจฟเฉฐเจ— เจกเฉŒเจฒเจธเฅค เจ‡เจน LVM เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจฒเจšเจ•เจคเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

PS

เจ…เจ—เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ˜เจฐเฉ‡เจฒเฉ‚ เจกเฉˆเจธเจ•เจŸเจพเจชเจพเจ‚, เจ˜เจฐเฉ‡เจฒเฉ‚ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจ…เจคเฉ‡ P2P เจจเฉˆเฉฑเจŸเจตเจฐเจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจˆ เจฎเจนเจพเจ‚เจฆเฉ€เจชเจพเจ‚ เจตเจฟเฉฑเจš เจฐเจฟเจกเฉฐเจกเฉˆเจ‚เจธเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจœเจฟเจ“-เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจŸเจก เจธเจŸเฉ‹เจฐเฉ‡เจœ/vm เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจ†เจงเจพเจฐ เจตเจœเฉ‹เจ‚ เจ•เจˆ เจธเจฎเจพเจจ เจฎเฉ‹เจฌเจพเจˆเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฟเจธเจŸเจฎ/KVM เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹