เปเบงเบฅเบฒเบเบตเปเปเบเปเปเบงเบฅเบฒเบเบญเบเบกเบทเป.
เบเปเบญเบเบขเบฒเบเปเบเปเบเบเบฑเบเบเบฑเบเบเบธเบกเบเบปเบเบเบฐเบชเบปเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเปเบญเบเปเบเบเบฒเบเบชเปเบฒเบเบฅเบฐเบเบปเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบ KVM เปเบเบเปเบเป md RAID + LVM.
เปเบเบโเบเบฒเบโเบเบฐโเบเบฐโเบเบญเบโเบกเบตโ:
- เบเบฒเบเบเปเปเบชเปเบฒเบ md RAID 1 เบเบฒเบ NVMe SSD.
- เบเบฒเบเบเบฐเบเบญเบ md RAID 6 เบเบฒเบ SATA SSD เปเบฅเบฐเปเบเบเบปเบเบเบฐเบเบด.
- เบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ TRIM/DISCARD เปเบ SSD RAID 1/6.
- เบเบฒเบเบชเปเบฒเบ md RAID 1/6 array เบเบตเปเบชเบฒเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเปเปเบเบเบธเบเบเบญเบเปเบเปเบเบเบปเปเบงเปเบ.
- เบเบฒเบเบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบเปเบ NVMe RAID 1 เปเบกเบทเปเบญเบเปเปเบกเบตเบเบฒเบเบฎเบญเบเบฎเบฑเบ NVMe เปเบ BIOS.
- เปเบเป LVM cache เปเบฅเบฐ LVM เบเบฒเบเป.
- เบเบฒเบโเบเปเบฒโเปเบเป BTRFS snapshots เปเบฅเบฐโเบชเบปเปเบ / เบฎเบฑเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบชเปเบฒโเบฎเบญเบโเบเปเปโเบกเบนเบโ.
- เปเบเปเบฎเบนเบเบเปเบฒเบเบเบฒเบเป LVM เปเบฅเบฐ thin_delta เบชเบณเบฅเบฑเบเบเบฒเบเบชเบณเบฎเบญเบเบเปเปเบกเบนเบเปเบเบ BTRFS.
เบเปเบฒเบเปเบฒเบเบชเบปเบเปเบ, เบเบฐเบฅเบธเบเบฒเปเบเบดเปเบเปเบกเบง.
Statement
เบเบนเปโเบเบฝเบโเบเปเปโเปเบเปโเบฎเบฑเบโเบเบดเบโเบเบญเบโเปเบเปโเบชเปเบฒโเบฅเบฑเบโเบเบปเบโเปเบเปโเบฎเบฑเบโเบเบญเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบซเบผเบทโเบเปเปโเบเปเบฒโเปเบเปโเบญเบธโเบเบฐโเบเบญเบ / เบเบปเบงโเบขเปเบฒเบ / เบฅเบฐโเบซเบฑเบ / เบเปเบฒโเปเบเบฐโเบเปเบฒ / เบเปเปโเบกเบนเบโเบเบฒเบโเบเบปเบโเบเบงเบฒเบกโเบเบตเปโ. เปเบเบเบเบฒเบเบญเปเบฒเบเบซเบผเบทเบเปเบฒเปเบเปเปเบญเบเบฐเบชเบฒเบเบเบตเปเปเบเบเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเบฒเบเบฎเบฑเบเบเบดเบเบเบญเบเบเปเปเบเบปเบเบชเบฐเบเปเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบเบฐเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป. เบเบปเบเบชเบฐเบเปเบญเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเบฅเบงเบกเบกเบต:
- เบเบปเปเบง NVMe SSDs.
- เปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบฑเบเบเบถเบเปเบฅเบฐเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเบเบญเบ SSD drives เบขเปเบฒเบเบชเบปเบกเบเบนเบ.
- เบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบกเบนเบเบเบฑเบเปเบปเบเปเบเปเบเบฃเบเปเบเบฑเบเปเบปเบ, เบฅเบงเบกเบเบฑเบเบชเบณเปเบเบปเบฒเบชเบณเบฎเบญเบ.
- เบฎเบฒเบเปเบงเบเบญเบกเบเบดเบงเปเบเบตเบกเบตเบเบฑเบเบซเบฒ.
- เปเบชเบเปเบงเบฅเบฒ, เปเบชเบฑเปเบเบเบฐเบชเบฒเบ เปเบฅเบฐเปเบเบดเบ.
- เบเบปเบเบชเบฐเบเปเบญเบเบญเบทเปเบเปเบเบตเปเบเปเปเปเบเปเบฅเบฐเบเบธเปเบงเปเบเปเบฒเบเปเบเบดเบ.
เปเบซเบฅเปเบ
เบกเบตเบขเบนเปเบเบท:
เปเบกเบเบเบญเบเบเบฒเบเบเบฐเบกเบฒเบ 2013 เบเบฑเบเบเบดเบเปเบเบฑเบ Z87, เบชเปเบฒเปเบฅเบฑเบเบเปเบงเบ Intel Core i7 / Haswell.
- เบซเบเปเบงเบเบเบฐเบกเบงเบเบเบปเบ 4 เปเบเบ, 8 threads
- RAM 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 เปเบเบเปเบเบเบเบฐเบเบฒเปเบเบทเปเบญ:
- เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเบดเปเบกโเบญเบฐโเปเบเบโเปเบเบตโเบเบตเปโเบญเบญเบโเปเบเปโเบเบธเบโเปเบงโเบฅเบฒโเปเบฅเบฐโเบเบปเบโเปเบเบโเบกเบฑเบโเบเบฑเบโเบญเบฑเบโเปเบโเบซเบเบถเปเบโเบเบตเปโเบเปเบฒเบโเบเบปเบโเปเบซเบฑเบโ.
- TRIM/Discard เปเบฎเบฑเบเบงเบฝเบเบเบฒเบกเบเบปเบเบเบฐเบเบดเปเบเปเบเปเบ, เปเบเบฒเบฐเบงเปเบฒ... เปเบ RAID firmware เบเปเบฒเบชเบฑเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฑเบเบซเบกเบปเบ, เปเบฅเบฐ HBA, เปเบเบเบเบปเปเบงเปเบ, เบเปเปเบชเบปเบเปเบเบงเปเบฒเบเปเบฒเบชเบฑเปเบเปเบเบเบทเบเบชเบปเปเบเบเปเบฒเบเบฅเบปเบเปเบก.
เบฎเบฒเบเบเบดเบ - 8 เบเบดเปเบเบเบญเบ HGST Travelstar 7K1000 เบเบตเปเบกเบตเบเบงเบฒเบกเบเบธ 1 TB เปเบเบฎเบนเบเปเบเบ 2.5, เบชเปเบฒเบฅเบฑเบเปเบฅเบฑเบเบเบฑเบญเบ. เปเบเบฃเบเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเบกเบทเปเบญเบเปเบญเบเบขเบนเปเปเบเบญเบฒเปเบฃ RAID 6. เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบเบฐเบกเบตเบเบฒเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบเบปเบเปเบซเบกเป. เปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบเปเบเบเปเบญเบเบเบดเปเบ.
เปเบเบตเปเบกเบเบทเปเบก:
6 เบเบดเปเบ SATA SSD เบฎเบธเปเบ Samsung 860 QVO 2TB. SSDs เปเบซเบผเบปเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเบเบฐเบฅเบดเบกเบฒเบเบเบฐเบซเบเบฒเบเปเบซเบเป, เบกเบต cache SLC, เบเบงเบฒเบกเบซเบเปเบฒเปเบเบทเปเบญเบเบท, เปเบฅเบฐเบฅเบฒเบเบฒเบเปเปเบฒเปเบกเปเบเบเปเบญเบเบเบฒเบ. เบเปเบญเบเบฎเบญเบเบฎเบฑเบเบเบฒเบเบเบปเบเปเบฅเบตเบ/เบชเบนเบ, เปเบเบดเปเบเบเบทเบเบเบงเบเบชเบญเบเปเบเบเปเบเบงเปเบ dmesg:
kernel: ata1.00: Enabling discard_zeroes_data
2 เบเบดเปเบเบเบญเบ NVMe SSD เบฎเบธเปเบ Samsung SSD 970 EVO 500GB.
เบชเปเบฒเบฅเบฑเบ SSDs เปเบซเบผเบปเปเบฒเบเบตเป, เบเบงเบฒเบกเปเบงเปเบเบเบฒเบเบญเปเบฒเบ / เบเบฝเบเปเบเบเบชเบธเปเบกเปเบฅเบฐเบเบงเบฒเบกเบญเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบกเปเบเบชเปเบฒเบเบฑเบ. Radiator เบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒ. เบเปเบฒเปเบเบฑเบ. เบขเปเบฒเบเปเบเปเบเบดเบ. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเบทเบเบเบงเบเบกเบฑเบเบเบปเบเบเปเบงเบฒ crispy เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบ synchronization RAID เบเบฑเปเบเบเปเบฒเบญเบดเบ.
เบญเบฐเปเบเบฑเบเปเบเบต StarTech PEX8M2E2 เบชเปเบฒเบฅเบฑเบ 2 x NVMe SSD เบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบเปเบญเบ PCIe 3.0 8x. เบเบตเป, เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เปเบกเปเบเบเบฝเบเปเบเป HBA, เปเบเปเบชเปเบฒเบฅเบฑเบ NVMe. เบกเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบเบญเบฐเปเบเบเปเบเบตเบฅเบฒเบเบฒเบเบทเบเบเบตเปเบกเบฑเบเบเปเปเบเปเบญเบเบเบฒเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ PCIe bifurcation เบเบฒเบเปเบกเบเบเบญเบเปเบเบทเปเบญเบเบเบฒเบเบกเบตเบชเบฐเบงเบดเบ PCIe เบเบตเปเบกเบตเปเบเบเบปเบง. เบกเบฑเบเบเบฐเปเบฎเบฑเบเบงเบฝเบเปเบกเปเปเบเปเบขเบนเปเปเบเบฅเบฐเบเบปเบเปเบเบปเปเบฒเปเบเปเบเบตเปเบชเบธเบเบเบฑเบ PCIe, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเปเบญเบ x1 PCIe 1.0. เบเบฒเบกเบเปเบฒเบกเบฐเบเบฒเบ, เปเบเบเบงเบฒเบกเปเบงเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก. เบเปเปเบกเบต RAIDs เบขเบนเปเบเบตเปเบเบฑเปเบ. เบเปเปเบกเบต BIOS เบขเบนเปเปเบเปเบเบทเปเบญเบ. เบเบฑเปเบเบเบฑเปเบ, เบฅเบฐเบเบปเบเบเบญเบเบเปเบฒเบเบเบฐเบเปเปเบฎเบฝเบเบฎเบนเปเบเบตเปเบเบฐเบเบนเบเบเบฑเบ NVMe, เบซเบเปเบญเบเบฅเบปเบ NVMe RAID เบเบญเบเปเบเบญเบธเบเบฐเบเบญเบเบเบตเป.
เบญเบปเบเบเบฐเบเบญเบเบเบตเปเปเบกเปเบเบเปเบญเบเบกเบตเบเบฝเบ 8x PCIe 3.0 เบเบฃเบตเบเบฝเบงเปเบเบฅเบฐเบเบปเบ, เปเบฅเบฐเบเปเบฒเบกเบต 2 เบชเบฐเบฅเบฑเบญเบเบเบฃเบต, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเบเปเบงเบเบชเบญเบ penny PEX4M2E1 เบซเบผเบท analogues, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเบทเปเปเบเปเบเบธเบเบเปเบญเบเปเบเบฅเบฒเบเบฒ 600. เบฎเบนเปเบเบตเบ.
เบเบฒเบเบเบฐเบเบดเปเบชเบเบเบธเบเบเบฐเปเบเบเบเบญเบเบฎเบฒเบเปเบงเบซเบผเบทเบเบดเบเปเบเบฑเบ / BIOS RAIDs เบเบตเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบเปเบเบเบเบฐเบเบฒ, เปเบเบทเปเบญเปเบซเปเบชเบฒเบกเบฒเบเบเบปเบเปเบเบเบฅเบฐเบเบปเบเบเบฑเบเบซเบกเบปเบเปเบเปเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เบเบปเบเปเบงเบฑเปเบ SSD / HDD เบเบปเบงเปเบญเบ, เปเบเบเบฐเบเบฐเบเบตเปเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบฑเบเบซเบกเบปเบ. เปเบเบเบซเบฅเบฑเบเบเบฒเบเปเบฅเปเบง, เปเบเบทเปเบญเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฑเบเปเบเบดเบเปเบกเปเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเปเบเบดเบเบเบฑเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเปเบเบซเบฒเบฎเบฒเบเปเบงเปเบซเบกเป / เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบกเบปเบ. เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบกเปเบเบงเปเบฒเบกเบตเบเบญเบ SATA เปเบฅเบฐ PCIe. เบกเบฑเบเบเปเบฒเบเบเบทเบเบฑเบเปเบเปเบเบเบตเบเบตเบเบตเปเบกเบตเบเบตเบงเบดเบเบเบตเบงเบฒเบซเบผเบท flash drive เบเบตเปเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเป, เบเบฝเบเปเบเปเปเบงเบซเบผเบฒเบเปเบฅเบฐ bulky เปเบฅเบฑเบเบเปเบญเบ.
Humorเบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เปเบเบปเปเบฒเบฎเบนเปเบงเปเบฒเบเบฐเปเบเบตเบเบซเบเบฑเบเบเบถเปเบ - เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฎเบตเบเบเปเบงเบเปเบญเบปเบฒเบญเบฒเปเบฅเบเบฑเบเบซเบกเบปเบเปเบเบเบฑเบเปเบเบปเปเบฒเปเบเบทเปเบญเปเบญเบปเบฒเปเบ. เปเบเปเบเปเบญเบเบเปเปเบเปเบญเบเบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบกเบนเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบชเบทเปเบกเบงเบเบเบปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบกเปเบเบชเบฐเบเบงเบเปเบเบชเบฐเปเบฅเปเปเบ 5.25 bays เบเบญเบเบเปเบฅเบฐเบเบตเบกเบฒเบเบเบฐเบเบฒเบ.
เบเบต, เปเบฅเบฐ, เปเบเปเบเบญเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบ SSD caching เปเบ Linux.
เบเบฒเบเปเบเบกเบเบตเบฎเบฒเบเปเบงเปเบกเปเบเบซเบเปเบฒเปเบเบทเปเบญ. เปเบเบตเบเบกเบฑเบ. เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบซเบผเบทเบเปเปเปเบเป. เปเบฅเบฐเบเบฑเบ mdadm เบกเบตเบเบฒเบเปเบฅเบทเบญเบเบชเบฐเปเบซเบกเบต.
เบเบญเบเปเบง
เบเปเบญเบเบซเบเปเบฒเบเบตเป, Debian 8 Jessie เปเบเปเบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบฎเบฒเบเปเบง, เปเบเบดเปเบเบขเบนเปเปเบเปเบเบฑเบ EOL. RAID 6 เปเบเปเบเบทเบเบเบฐเบเบญเบเบกเบฒเบเบฒเบ HDDs เบเบตเปเบเปเบฒเบงเบกเบฒเบเปเบฒเบเปเบเบดเบเบเบตเปเบเบฑเบเบเบนเปเบเบฑเบ LVM. เบกเบฑเบเปเบฅเปเบเปเบเบทเปเบญเบ virtual เปเบ kvm/libvirt.
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เบเบนเปเบเบฝเบเบกเบตเบเบฐเบชเบปเบเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบเบเบฒเบเบชเปเบฒเบ flash drives SATA / NVMe เบเบตเปเบชเบฒเบกเบฒเบ bootable portable, เปเบฅเบฐเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เปเบเบทเปเบญเบเปเปเปเบซเปเบเปเบฒเบฅเบฒเบเปเบกเปเปเบเบเบเบปเบเบเบฐเบเบด, Ubuntu 18.04 เปเบเปเบเบทเบเปเบฅเบทเบญเบเปเบเบฑเบเบฅเบฐเบเบปเบเปเบเบปเปเบฒเบซเบกเบฒเบ, เปเบเบดเปเบเบกเบตเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบเบเบฝเบเบเปเปเบฅเปเบง, เปเบเปเบเบฑเบเบกเบตเปเบงเบฅเบฒ 3 เบเบต. เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบญเบฐเบเบฒเบเบปเบ.
เบฅเบฐเบเบปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเบฐเบเบญเบเบกเบตเปเบเปเบงเบตเบฎเบฒเบเปเบงเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบญเบญเบเบเบฒเบเบเปเบญเบ. เบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบเบเบญเบเปเบงเบเบฒเบเบชเปเบงเบเบเบตเบชเบฒเบกเบซเบผเบทเปเบเปเบงเบต.
เบเบฒเบเบเบฐเบเบฝเบกเบเบฒเบเบเบดเบเบเบฑเปเบ
เปเบเบทเปเบญเบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ Ubuntu Desktop Image. เบฅเบฐเบเบปเบเปเบเบตเบเปเบงเบตเบกเบตเบเบปเบงเบเบดเบเบเบฑเปเบเบเบตเปเปเบเบฑเปเบกเปเบเบเบเบฒเบเบเบฐเบเบดเบ, เปเบเบดเปเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบงเบฒเบกเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบซเบผเบฒเบเปเบเบตเบเปเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเปเบเปเปเบเบเบเบฒเบเปเบฅเบทเปเบญเบเบเบฒเบเปเบเปเบเบเบฑเบเบฅเบฐเบเบปเบ UEFI เปเบชเปเปเบเปเบเบซเบเบถเปเบ, เปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบเบฒเบกเบเบฑเบเบซเบกเบปเบเปเบชเบเบซเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเปเบซเบกเบ UEFI เปเบเบปเปเบฒเบเบฑเปเบ. เบเปเปเปเบเปเบชเบฐเปเปเบตเบเบฒเบเปเบฅเบทเบญเบเปเบเป.
เบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเปเบเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเป.
เปเบเบฑเบเบซเบเบฑเบ?เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, boot UEFI เปเบกเปเบเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเปเปเบเบตเบเบฑเบเบเบญเบเปเบงเบเบนเบ RAID, เปเบเบฒเบฐเบงเปเบฒ เบเปเปเบกเบตเปเบเบชเบฐเปเบซเบเบตเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเบเบชเปเบงเบ UEFI ESP. เบกเบตเบชเบนเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบเบเบตเปเปเบเบฐเบเปเบฒเบเบฒเบเบงเบฒเบ ESP partition เปเบชเป flash drive เปเบเบเบญเบ USB, เปเบเปเบเบตเปเปเบกเปเบเบเบธเบเบเบตเปเบฅเบปเปเบกเปเบซเบฅเบง. เบกเบตเบชเบนเบเบเบตเปเปเบเปเบเบญเบเปเบง mdadm RAID 1 เบเบตเปเบกเบต metadata เบฎเบธเปเบ 0.9 เบเบตเปเบเปเปเบเปเบญเบเบเบฑเบเบเปเปเปเบซเป UEFI BIOS เปเบซเบฑเบเบเบฒเบเบดเบเบฑเบเบเบตเป, เปเบเปเบเบตเปเบกเบตเบเบตเบงเบดเบเบขเบนเปเบเบปเบเบเปเบงเบฒเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบงเบฒเบกเบชเบธเบเปเบเปเบงเบฅเบฒเบเบตเป BIOS เบซเบผเบทเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเบทเปเบเปเบเบฎเบฒเบเปเบงเบเบฝเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบชเป ESP เปเบฅเบฐเบฅเบทเบก synchronize เบกเบฑเบ. เบเบฑเบเบเบฐเบเบปเบเบญเบทเปเบเป.
เบเบญเบเบเบฒเบเบเบฑเปเบ, UEFI boot เปเบกเปเบเบเบถเปเบเบเบฑเบ NVRAM, เปเบเบดเปเบเบเบฐเบเปเปเบเปเบฒเบเปเบเบเปเบญเบกเบเบฑเบเปเบเปเบเบเบดเบเปเบเบซเบฒเบฅเบฐเบเบปเบเปเบซเบกเป, เปเบเบฒเบฐเบงเปเบฒ. เปเบกเปเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเปเบกเบเบเบญเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบเบฐเบเบดเบเบฅเปเปเปเปเป. เบเบงเบโเปเบฎเบปเบฒโเบกเบตโเบฅเบปเบโเบเบตเบโเบเบญเบโเบเปเปโเบเบนเปโเบเบตเปโเบกเบตโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบตเปโเบเบฝเบกโเบเปเบญเบกโเปเบฅเปเบง, เปเบโเบเบฑเบโเบเบธโเบเบฑเบโเบกเบตโเบเบทเปโเบงเปเบฒ Legacy/BIOS boot, เบกเบตโเบเบทเปโเบเบตเปโเบเบฒเบโเบเบนเบกโเปเบโเบเบญเบ CSM เปเบโเบฅเบฐโเบเบปเบโเบเบตเปโเปเบเบปเปเบฒโเบเบฑเบโเปเบเป UEFI. เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเปเบญเบปเบฒเบกเบฑเบเบญเบญเบเบเบฒเบเบเบฑเปเบเบงเบฒเบ, เบซเบฅเปเปเบฅเบทเปเบเบกเบฑเบ, เบชเบนเบเบขเบฒเบเบฅเบปเบเปเบฅเบฐเปเบเบฑเบเบกเบฑเบเบเปเบงเบเบเปเบฒเบเบฝเบ.
เปเบงเบตเบเบฑเบ desktop เบเบญเบ Ubuntu เบเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฑเปเบเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบเบเบฑเบ Legacy bootloader, เปเบเปเปเบเบเบตเปเบเบตเป, เบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒเบงเปเบฒ, เบขเปเบฒเบเบซเบเปเบญเบเบกเบตเบเบฒเบเปเบฅเบทเบญเบ.
เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเบฒเบฎเบฒเบเปเบงเปเบฅเบฐเปเบซเบฅเบเบฅเบฐเบเบปเบเบเบฒเบ Ubuntu Live bootable flash drive. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบงเปเบซเบฅเบเปเบเบฑเบเปเบเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเปเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบ. เบเปเบฒเบกเบฑเบเบเปเปเปเบฎเบฑเบเบงเบฝเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฅเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบชเป flash drive เบฅเปเบงเบเบซเบเปเบฒ.
เบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก desktop, เปเบเบตเบเบเบปเบง emulator terminal, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบ:
#sudo bash
เปเบเบงเปเบโฆ?เปเบชเบฑเปเบเบเปเบฒเบเปเบเบดเบเบเบตเปเปเบกเปเบเบเบปเบงเบเบฐเบเบธเปเบ canonical เบชเปเบฒเบฅเบฑเบ holiwars เบเปเบฝเบงเบเบฑเบ sudo. เบ เบะพเปเบญเบเบฒเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบเบกเบฒเปเบฅเบฐะพเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒ. เบเปเบฒเบเบฒเบกเปเบกเปเบเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบกเบฑเบเปเบชเปเบเบปเบงเบเปเบฒเบเปเบญเบเปเบเป. เบซเบผเบฒเบเบเบปเบเบเบดเบเบงเปเบฒเบเบฒเบเปเบเป sudo เปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบกเปเบเบขเปเบฒเบเบซเบเปเบญเบเบเปเปเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบ. เปเบเบงเปเบเบเปเปเบเบฒเบก:
#apt-get install mdadm lvm2 thin-provisioning-tools btrfs-tools util-linux lsscsi nvme-cli mc
เปเบเบฑเบเบซเบเบฑเบเบเปเป ZFS ...?เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฑเปเบเบเบญเบเปเบงเปเบเบเบญเบกเบเบดเบงเปเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบนเปเบขเบทเบกเบฎเบฒเบเปเบงเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบซเปเบเบฑเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบงเบเบตเปเปเบเบทเปเบญเบเบฑเบเบฅเบปเบ.
เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเปเบงเปเบงเบฒเบเปเบเบเบญเบเปเบงเบเบตเปเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเปเปเบกเบนเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเปเบเบดเบเบเบนเปเบขเบทเบกเปเบเบปเปเบฒเบเบฑเบเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฒเบเบเบทเปเบเบเบนเบเปเปเบกเบนเบเบเบตเป, เปเบเบดเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเปเบฒเบเปเบเบกเบทเปเบซเบเบถเปเบ.
เบเบฒเบเบเบธเบเบเบตเป, ZFS เปเบกเปเบ Ferrari, เปเบฅเบฐ mdadm+lvm เปเบกเปเบเบเปเบฒเบเบเบทเบฅเบปเบเบเบตเบเบซเบผเบฒเบ.
เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบนเปเบเบฝเบเบกเบฑเบเปเบซเปเบเบนเปเบขเบทเบกเบฅเบปเบเบเบตเบเปเบซเปเบเบฑเบเบเบธเบเบเบปเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบ Ferrari. เบขเบนเปเบเบตเปเบเบฑเปเบ, เบฅเบฒเบเบฒเบเบญเบเบเบฑเบเบซเบฒเปเบกเปเบเบเปเปเบชเบนเบ. เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบชเบดเบเบเบด. เบเปเบฒเบเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบฅเบฒเบเบญเบ. เบเปเบญเบเบเบญเบเบฅเบปเบเปเบกเปเบเบเปเปเปเบชเบเบเปเบฒ. เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเปเบฒเบกเบเบฐเปเบเบเบเบตเบเบงเปเบฒ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเบฑเบเบฅเบปเบเบเบตเบเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ, เปเบฅเบฐเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบญเบกเปเบเบเบฅเบปเบเบเบตเบเบเปเบงเบเบกเบทเบเบญเบเบเปเบฒเบเปเบญเบ.
เปเบเบฑเบเบซเบเบฑเบ BTRFS...?เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบฅเบฐเบเบปเบเปเบเบฅเปเบเบตเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบ Legacy/BIOS GRUB เบญเบญเบเบเบฒเบเบเปเบญเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบชเบปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบกเบฑเบเบชเปเบฒเบฅเบฑเบ /boot partition. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบนเปเบเบฝเบเบกเบฑเบเปเบเป FS เบเบตเปเบชเปเบฒเบฅเบฑเบ / (เบฎเบฒเบ), เบขเปเบฒเบฅเบทเบกเบชเบฑเบเปเบเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบญเบเปเบงเบญเบทเปเบเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเปเบเบเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบ LVM เปเบฅเบฐเบเบดเบเบเบฑเปเบเบเบงเบเบกเบฑเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเปเบฒเปเบเบฑเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบเบฑเบเบฎเบฑเบเบชเบฒเบฎเบนเบเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเบเบฑเบ virtual เบซเบผเบทเบเบฒเบเบเปเปเบกเบนเบเปเบเปเบขเบนเปเปเบ FS เบเบตเป.
FS เบเบตเปเบเบฝเบเปเบเปเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบ snapshots เบเบญเบเบฅเบฐเบเบปเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบดเบเบกเบฑเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบญเบ snapshots เปเบซเบผเบปเปเบฒเบเบตเปเบเบฑเบเปเบเปเบเบชเปเบฒเบฎเบญเบเปเบเบเปเบเป send/recieve.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบนเปเบเบฝเบเปเบเบเบเบปเปเบงเปเบเบกเบฑเบเบฎเบฑเบเบชเบฒเบเปเบฒเปเบชเบธเบเบเบตเปเบเบญเบเบเบญเบเปเบงเปเบเบเบเบปเบเปเบเบฎเบฒเบเปเบงเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเปเบงเบญเบทเปเบเปเบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเปเบญเบ virtual เปเบเบเปเบเปเบชเบดเปเบเบเปเบฒเบเปเปเบเบฑเปเบเบเบฒเบเบชเบปเปเบเบเปเป GPUs เปเบฅเบฐ PCI-USB Host controllers เบเบฑเบ KVM เบเปเบฒเบ IOMMU.
เบชเบดเปเบเบเบฝเบงเบเบตเปเปเบซเบฅเบทเบญเบขเบนเปเปเบเบฎเบฒเบเปเบงเปเบกเปเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบ, virtualization เปเบฅเบฐเบเบฒเบเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบ.
เบเปเบฒเบเปเบฒเบเปเบงเปเบงเบฒเบเปเบ ZFS เบซเบผเบฒเบ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเปเบฒเบเบปเบ, เบเบงเบเบกเบฑเบเบชเบฒเบกเบฒเบเปเบฅเบเบเปเบฝเบเบเบฑเบเปเบเป.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบนเปเบเบฝเบเปเบเบเปเบเบเบเบฐเบเบฒเบเปเปเบชเบปเบเปเบเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐ mirroring / RAID เบเบตเปเบกเบตเบเบฒเบเบเปเปเบชเปเบฒเบเปเบฅเบฐเบเปเปเบฒเบเปเบญเบเบเบตเป ZFS, BRTFS เปเบฅเบฐ LVM เบกเบต.
เปเบเบเบฒเบเบฐเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเปเบเบตเปเบกเปเบเบตเบก, BTRFS เบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเปเบฝเบเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเปเบเบปเปเบฒเปเบเปเบเบฅเปเบฒเบเบฑเบ, เปเบเบดเปเบเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบเบงเบเบซเบผเบฒเบเบเปเปเบเบงเบฒเบกเปเบงเบเบญเบเบเบฒเบ synchronizing snapshots / เบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบเปเบ 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 เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบซเบฑเบเปเบเปเบซเบผเบปเปเบฒเบเบตเป. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบเบปเบฒเบเบฐเปเบเบซเบฒเบเบญเบเปเบง RAID เบเบฑเบเบซเบกเบปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบชเปเบฒเบเบเบฒเบเบชเปเบงเบเบขเบนเปเบเปเบญเบเบเบฑเปเบ. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบก "canon" เบซเบผเบท "เบเบปเปเบเบเป", เบชเปเบฒเบเบเบฒเบเปเบเปเบเบเบฑเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบซเบเบถเปเบเปเบเบฑเปเบ 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 TB. เบเบตเปเปเบกเปเบเบขเบนเปเปเบเบเบญเบเปเบเบเบเบตเปเบเบญเบกเบฎเบฑเบเปเบเปเบชเปเบฒเบฅเบฑเบ MBR, เปเบเบดเปเบเปเบกเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป. เบเปเบฒเบเปเบฒเปเบเบฑเบ, เบชเบฒเบกเบฒเบเบเบทเบเปเบเบเบเบตเปเบเปเบงเบ GPT. เปเบเปเบ GPT เบกเบตเบเบฑเปเบเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบเบปเบเบเบตเปเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบ MBR เปเบเบทเปเบญเปเบเบดเปเบ 4 เบเบฒเบเบชเปเบงเบเบเปเบฒเบญเบดเบเบเปเบฒเบเบงเบเบกเบฑเบเบเบฑเปเบเบขเบนเปเบเบฒเบเปเบ 2 เปเบเบฃเบฒเปเบเบเปเบฒเบญเบดเบ. เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบกเปเบเบงเปเบฒ boot partition เปเบฅเบฐ bios_grub partition เปเบเปเบเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบงเบเบเบฐเบขเบนเปเปเบเบเบญเบเบเบปเปเบ. เบเบตเปเบเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบ boot เบเบฒเบ GPT Legacy/BIOS drives.
เปเบเปเบเบตเปเบเปเปเปเบกเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบชเบญเบเบเบฒเบ. เบญเบฑเบเบเปเบฒเบญเบดเบเบเบฐเปเบเบฑเบเบเบฐเบซเบเบฒเบ 1 GB เปเบฅเบฐเปเบเปเบชเปเบฒเบฅเบฑเบ RAID 1 / boot.
เบญเบฑเบเบเบตเบชเบญเบเบเบฐเบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบ RAID 6 เปเบฅเบฐเบเบฐเปเบญเบปเบฒเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบฑเบเบซเบกเบปเบเบเบปเบเปเบงเบฑเปเบเบเบทเปเบเบเบตเปเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบตเปเบเปเปเปเบเปเบเบฑเบเบชเบฑเบเบขเบนเปเปเบเบเบญเบเบเปเบฒเบเบเบญเบเปเบ.
เบเบทเปเบเบเบตเปเบเบตเปเบเปเปเบกเบตเปเบเบทเปเบญเบเบซเบกเบฒเบเบเบตเปเปเบกเปเบเบซเบเบฑเบ?เบญเบตเบเบเบฒเบกเปเบซเบผเปเบเบเปเปเบกเบนเบเปเบเปเบเบทเบญเบเปเบฒเบ, SATA SSDs เบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบต cache SLC เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฒเบเปเบเปเปเบเบเปเบเบทเปเบญเบเปเบซเบงเบเบตเปเบกเบตเบเบฐเบซเบเบฒเบเบเบฑเปเบเปเบเป 6 เบซเบฒ 78 gigabyte. เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบ 6 gigabytes "เบเบฃเบต" เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบ "gigabytes" เปเบฅเบฐ "gibibytes" เปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบเบเบญเบเปเบ. เบชเปเบงเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญ 72 gigabytes เบเบทเบเบเบฑเบเบชเบฑเบเบเบฒเบเบเบทเปเบเบเบตเปเบเบตเปเบเปเปเปเบเปเปเบเป.
เปเบเบเบตเปเบเบตเปเบกเบฑเบเบเบงเบเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบ SLC, เปเบฅเบฐเบเบทเปเบเบเบตเปเบเบทเบเบเบญเบเบเบญเบเบขเบนเปเปเบเปเบซเบกเบ MLC 4 เบเบดเบ. เปเบเบดเปเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒเบขเปเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบธเบเป 4 gigabyte เบเบญเบเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบฝเบเปเบเป 1 gigabyte เบเบญเบ SLC cache.
เบเบนเบ 72 gigabytes เบเบนเบ 4 เปเบฅเบฐเปเบเปเบฎเบฑเบ 288 gigabyte. เบเบตเปโเปเบกเปเบโเบเปเบญเบโเบซเบงเปเบฒเบโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบเปเปโเปเบเปโเบซเบกเบฒเบโเบญเบญเบโเปเบโเบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบเบฐโเบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเบเบฒเบโเบเบฑเบโเปเบเบทเปเบญโเบเปเบฒโเปเบเปโเบขเปเบฒเบโเปเบเบฑเบกโเบเบตเปโเบเบญเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒ SLCโ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเปเบเบดเบ 312 gigabyte เบเบญเบ SLC cache เบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบซเบปเบเปเบ. เบเบญเบเปเบเบเบฑเบเปเบปเบ, 2 เบเบฐเบเบทเบเปเบเปเปเบ RAID เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบฒเบเปเบญเบ.
เบเปเบฒเบเบงเบ cache เบเบตเปเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบซเบฒเบเบฒเบเบเบตเปเบชเบธเบเปเบเบเบตเบงเบดเบเบเบดเบเบเบปเบเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบเบฒเบเบเบฝเบเบเปเปเปเบเปเปเบเบซเบฒ cache. เบเบตเปเปเบเบฑเบเบเบฒเบเบเบปเบเปเบเบตเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเปเปเบเบปเบเบเปเบญเบเบเบตเปเปเบชเบเปเบชเบปเปเบฒเบเบตเปเบชเบธเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ 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
เบเบฒเบเบชเปเบฒเบ Arrays
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเบงเบเปเบฎเบปเบฒ เบเบณ เปเบเบฑเบเบเปเบญเบเบเปเบฝเบเบเบทเปเปเบเบทเปเบญเบ. เบเบตเปเปเบกเปเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบทเปเปเบฎเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบทเป array เบขเบนเปเบเปเบญเบเปเบเบเปเบญเบเบซเบเบถเปเบเบเบฒเบเปเบ mdadm เปเบฅเบฐเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบฒเบเบเปเบญเบ. เปเบเปเบเบญเบ, arrays เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฝเบเบเบทเปเบเปเปเบกเบฒ, เปเบเปเบเบตเปเปเบกเปเบเบเบฑเปเบเบเบญเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบ.
#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
เปเบเบฑเบเบซเบเบฑเบ -เบชเบปเบกเบกเบธเบเบงเปเบฒเบชเบฐเบญเบฒเบ...?เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ arrays. เบชเปเบฒเบฅเบฑเบเบเบฑเบเบชเบญเบเบฅเบฐเบเบฑเบ RAID 1 เปเบฅเบฐ 6 เบเบตเปเปเบกเปเบเบเบทเบเบเปเบญเบ. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบกเบฑเบเปเบเบฑเบ array เปเบซเบกเป. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ SSD array เปเบกเบทเปเบญเบชเปเบฒเบเปเบกเปเบเปเบชเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ TBW. เบเบงเบเปเบฎเบปเบฒเปเบเป TRIM/DISCARD เบเปเบญเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบ SSD arrays เบเบตเปเบเบฐเบเบญเบเปเบเบทเปเบญ "เปเบฅเบตเปเบกเบเบปเปเบ" เบเบงเบเบกเบฑเบ.
เบชเปเบฒเบฅเบฑเบ SSD arrays, RAID 1 DISCARD เปเบกเปเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบญเบญเบเบเบฒเบเบเปเบญเบ.
เบชเปเบฒเบฅเบฑเบ SSD RAID 6 DISCARD arrays, เบเปเบฒเบเบเปเบญเบเปเบเบตเบเปเบเปเบกเบฑเบเบขเบนเปเปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบกเบเบนเบ kernel.
เบญเบฑเบเบเบตเปเบเบงเบเบเบฐเปเบฎเบฑเบเปเบเปเบเบฝเบเปเบเปเบเปเบฒ SSD เบเบฑเบเปเบปเบเบเบตเปเปเบเปเปเบเบฅเบฐเบเบฑเบ 4/5/6 arrays เปเบเบฅเบฐเบเบปเบเบเบตเปเบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ discard_zeroes_data. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบปเบเปเบเบฃเบเปเปเบเบเปเบเบตเปเบเบญเบ kernel เบงเปเบฒเบเบฑเบเบเบฑเบเบเบตเปเบเบทเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ, เปเบเปเบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเบกเบฑเบเบเปเปเปเบกเปเบเบขเบนเป, เบซเบผเบทเบเบฑเบเบเบฑเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบชเบฐเปเบซเบกเบต. เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบกเปเบเบกเบตเบขเบนเปเปเบเบทเบญเบเบเบธเบเบเปเบญเบ, เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเปเบเปเบเบปเปเบฒเปเบฅเบฐเปเบเบตเบกเปเบงเบเบตเปเบกเบตเบเปเปเบเบดเบเบเบฒเบ. เบเปเบงเบเปเบซเบเบเบปเบเบเบตเป, เบเบฒเบเบฎเบญเบเบฎเบฑเบ DISCARD เบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบ RAID 6.
เปเบญเบปเบฒโเปเบโเปเบชเป, เบเปเบฒโเบชเบฑเปเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโเบเบฐโเบเปเบฒโเบฅเบฒเบโเบเปเปโเบกเบนเบโเบเบฑเบโเบซเบกเบปเบโเปเบ NVMe drives เปเบเบ "เบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโ" array เบเบฑเบ "เบชเบนเบโ"โ.
#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
เปเบเบฑเบเบซเบเบฑเบเปเบซเบเป...?เบเบฒเบเปเบเบตเปเบกเบเบฐเบซเบเบฒเบ chunk เบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบเบงเบเบเปเปเบเบงเบฒเบกเปเบงเบเบญเบเบเบฒเบเบญเปเบฒเบเปเบเบเบชเบธเปเบกเปเบเบเบฅเบฑเบญเบเปเบเบดเบเบเบฐเบซเบเบฒเบ chunk เบฅเบงเบก. เบญเบฑเบเบเบตเปเปเบเบตเบเบเบถเปเบเบเปเบญเบเบงเปเบฒเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบเบถเปเบเบเบญเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบซเบผเบทเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒเบชเบฒเบกเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบฑเบเบซเบกเบปเบเปเบเบญเบธเบเบฐเบเบญเบเบเบฝเบง. เบเบฑเปเบเบเบฑเปเบ, IOPS เบเบฒเบเบญเบธเบเบฐเบเบญเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบชเบฐเบซเบผเบธเบ. เบญเบตเบเบเบฒเบกเบชเบฐเบเบดเบเบด, 99% เบเบญเบ IO เบเปเปเปเบเบตเบ 512K.
RAID เบกเบต 6 IOPS เบเปเปเบเบฒเบเบเบฝเบ เบชเบฐเปเบซเบกเบตเปเบ เปเปเบญเบเบเบงเปเบฒ เบซเบผเบทเปเบเบปเปเบฒเบเบฑเบ IOPS เบเบญเบเปเบถเปเบเปเบ. เปเบกเบทเปเบญ, เปเบเบฑเบเบเบฒเบเบญเปเบฒเบเปเบเบเบชเบธเปเบก, IOPS เบชเบฒเบกเบฒเบเปเบซเบเปเบเบงเปเบฒเบซเบผเบฒเบเบเบฑเปเบเบเบญเบเบซเบเบถเปเบเปเบ, เปเบฅเบฐเปเบเบเบตเปเบเบตเปเบเบฐเบซเบเบฒเบเบเบญเบเบเบฑเบเปเบกเปเบเบกเบตเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบ.
เบเบนเปเบเบฝเบเบเปเปเปเบซเบฑเบเบเบธเบเบเบตเปเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเปเบเบตเปเบ RAID 6 เปเบเบเบเบฒเบเบญเบญเบเปเบเบเปเบฅเบฐเปเบเบเบเบตเปเบเบฐเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบดเปเบเบเบตเป RAID 6 เบเบตเบขเบนเป.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบปเบเปเบเบตเบเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเบเบตเปเบเปเปเบเบตเบเบญเบ RAID 6 เบเปเบงเบ cache NVMe เปเบฅเบฐ tricks เบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเป.
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเปเบเปเปเบเบตเบเปเบเป DISCARD เบชเปเบฒเบฅเบฑเบ RAID 6. เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเป "เปเบฅเบตเปเบกเบเบปเปเบ" array เบเบตเปเบชเปเบฒเบฅเบฑเบเปเบเบเบฑเบเบเบธเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบเบญเบฑเบเบเบตเปเปเบเบเบฒเบเบซเบผเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบ OS.
SATA HDD
#mdadm --create --verbose --assume-clean /dev/md3 --chunk-size=512 --level=6 --raid-devices=8 /dev/sd[g-n]1
LVM เปเบ NVMe RAID
เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเปเบง, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบงเบฒเบเบฅเบฐเบเบปเบเปเบเบฅเปเบฎเบฒเบเปเบชเป NVMe RAID 1 เปเบเบดเปเบเปเบเบฑเบ /dev/md0.
เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเปเบญเบเบเบฒเบ array เปเบงเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบญเบทเปเบเป, เปเบเบฑเปเบ: swap, metadata เปเบฅเบฐ LVM-cache เปเบฅเบฐ LVM-thin metadata, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบ LVM VG เปเบ array เบเบตเป.
#pvcreate /dev/md0
#vgcreate root /dev/md0
เปเบซเปเบชเปเบฒเบเบเบฒเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเปเบเบฅเปเบฎเบฒเบ.
#lvcreate -L 128G --name root root
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบฒเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบ swapping เบเบฒเบกเบเบฐเบซเบเบฒเบเบเบญเบ RAM.
#lvcreate -L 32G --name swap root
เบเบฒเบเบเบดเบเบเบฑเปเบ OS
เปเบเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ, เบเบงเบเปเบฎเบปเบฒเบกเบตเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบเบฒเบเบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบ.
เปเบเบตเบเปเบเปเบเบปเบงเบเปเบงเบเบชเปเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบเบเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก Ubuntu Live. เบเบฒเบเบเบดเบเบเบฑเปเบเบเบปเบเบเบฐเบเบด. เบเบฝเบเปเบเปเบขเบนเปเปเบเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเปเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฅเบฐเบเบธเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- /dev/md1, - mount เบเบธเบ /boot, FS - BTRFS
- /dev/root/root (aka /dev/mapper/root-root), - เบเบธเบเปเบเบทเปเบญเบกเบเปเป / (เบฎเบฒเบ), FS - BTRFS
- /dev/root/swap (aka /dev/mapper/root-swap), - เปเบเปเปเบเบฑเบ swap partition
- เบเบดเบเบเบฑเปเบ bootloader เปเบ /dev/sda
เปเบกเบทเปเบญเบเปเบฒเบเปเบฅเบทเบญเบ BTRFS เปเบเบฑเบเบฅเบฐเบเบปเบเปเบเบฅเปเบฎเบฒเบ, เบเบปเบงเบเบดเบเบเบฑเปเบเบเบฐเบชเปเบฒเบเบชเบญเบเบเบฐเบฅเบดเบกเบฒเบ BTRFS เปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเบกเบตเบเบทเปเบงเปเบฒ "@" เบชเปเบฒเบฅเบฑเบ / (เบฎเบฒเบ), เปเบฅเบฐ "@home" เบชเปเบฒเบฅเบฑเบ /home.
เบกเบฒเปเบฅเบตเปเบกเบเบฒเบเบเบดเบเบเบฑเปเบเบเบฑเบเปเบฅเบตเบ...
เบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบฐโเบชเบดเปเบโเบชเบธเบโเบฅเบปเบโเบเปเบงเบโเบเปเบญเบ modal เบเบตเปโเบเบญเบโเปเบเบดเบโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเปเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบ bootloader เปเบเปโ. เบเปเบญเบฐเปเบ, เบเปเบฒเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเบญเบญเบเบเบฒเบเบเปเบญเบเปเบเปเบเบญเบเบเบตเปเปเบเปเปเบเบเปเบเปเบงเบดเบเบตเบกเบฒเบเบเบฐเบเบฒเบ เปเบฅเบฐเบชเบทเบเบเปเปเบเบฒเบเบเบดเบเบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบญเบญเบเบเบฒเบเบฅเบฐเบเบปเบเปเบฅเบฐเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เบชเบดเปเบเบชเบธเบเปเบ desktop Ubuntu Live เบเบตเปเบชเบฐเบญเบฒเบ. เปเบเบตเบ terminal, เปเบฅเบฐเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ:
#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 เบเปเบญเบ
เบกเบฒเบเบฑเบเบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบชเบณเบฅเบฑเบเปเบกเบเบนเบ RAID 6 เปเบเบทเปเบญเปเบเบตเบเปเบเป TRIM/DISCARD:
#cat >/etc/modprobe.d/raid456.conf << EOF
options raid456 devices_handle_discard_safely=1
EOF
เปเบซเปเบเบฑเบ arrays เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบฑเบเบเปเบญเบ:
#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 เบเบตเปเบเบฐเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบเปเบฒเบเบปเบเบเบฐเบซเบเบฒเบ block cache เบชเปเบฒเบฅเบฑเบ RAID 2020 เบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบ 6. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒ, เบเปเปเปเบเปเบเปเบฝเบเปเบเบเบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบชเปเบฒเบ Linux, เปเบฅเบฐเบเปเปเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเปเบงเบฅเบฒเบเบปเบเบเบฒเบ.
- เบเบญเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบญเบ IO เบชเปเบฒเบฅเบฑเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบ array / synchronizations. เบเบตเปเปเบกเปเบเปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเปเปเปเบซเป arrays เบเบญเบเบเปเบฒเบเบเบดเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบญเบเบเบฒเบ synchronization เบเบดเบฅเบฑเบเบเบญเบเบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบ.
- เบเปเบฒโเบเบฑเบ IO เบชเบนเบโเบชเบธเบโเปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบเบงเบโเบชเบญเบ / synchronization เบเบญเบ arraysโ. เบเบตเปเปเบกเปเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบงเปเบฒเบเบฒเบ synchronizing / เบเบฒเบเบเบงเบเบชเบญเบ SSD RAIDs เบเปเปเปเบเปเปเบฎเบฑเบเปเบซเปเปเบเบเบญเบเบเปเบฒเบเบกเบตเบเบงเบฒเบกเบเบปเบกเบเบฑเบ. เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเปเบเบเบชเบฐเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบ NVMe. (เบเบทเปเปเบเปเบเป? เบเปเบญเบเบเปเปเปเบเปเปเบงเบปเปเบฒเบเบฐเบซเบผเบปเบ.)
- เบซเปเบฒเบกเบเบดเบชเบเบฒเบเบเบฒเบเบขเบธเบเบเบฒเบเบซเบกเบธเบ spindle (HDD) เบเปเบฒเบ APM เปเบฅเบฐเบเบฑเปเบเปเบงเบฅเบฒเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบเบงเบเบเบธเบกเบเบดเบชเบเปเปเบเบฑเบ 7 เบเบปเปเบงเปเบกเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ APM เปเบเปเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเปเบฒเปเบเบเบญเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบกเบฑเบเปเบเป (-B 255). เบเปเบงเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, drives เบเบฐเบขเบธเบเบซเบผเบฑเบเบเบฒเบเบซเปเบฒเบงเบดเบเบฒเบเบต. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, OS เบเปเบญเบเบเบฒเบเบฃเบตเปเบเบฑเบเปเบเบเบเบดเบชเบเป, เปเบเปเบเบเบฐเปเบธเบเบเบถเปเบเบญเบตเบเบเบฑเปเบ, เปเบฅเบฐเบเบธเบเบขเปเบฒเบเบเบฐเปเบฅเบตเปเบกเปเปเปเบญเบตเบเบเบฑเปเบ. เปเบเปเบเบกเบตเบเปเบฒเบเบงเบเบเปเบฒเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเบฒเบเบซเบกเบธเบ spindle. เบงเบปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบเบดเบเบเบญเบเบเปเบฒเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบชเบญเบเบชเบฒเบกเบเบต. เบเปเปเปเบกเปเบเปเบเปเบเบเบฑเบเบซเบกเบปเบเบเบปเบเบเบธเบเบเบฒเบเบชเบดเปเบเบเบตเป, เปเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบ "เบเบญเบกเบเบดเบงเปเบเบต" เบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเป RAID เปเบเบดเปเบเบเบทเบงเปเบฒ mini-MAID.
- เบเบดเบเบเบฑเปเบ readahead เปเบเปเบเปเบ (rotating) 1 megabyte - เบชเบญเบ blocks เบเบดเบเบเปเปเบเบฑเบ / chunk RAID 6
- เบเบดเบเบเบฒเบเปเบเปเบเบฒเบ readahead เปเบ arrays เปเบญเบ.
เบกเบฒเปเบเปเปเบ /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
เปเบเบฑเบเบซเบเบฑเบเบเบท..?เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบปเปเบเบซเบฒ /boot partition เปเบเบ UUID. เบเบฒเบเบเบฑเปเบเบเบทเป Array เบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบฒเบเบเบดเบเบชเบฐเบเบต.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบปเปเบเบซเบฒเบเบฒเบเบชเปเบงเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบเบเบเบทเป LVM เปเบเบชเบฑเบเบเบฒเบฅเบฑเบ /dev/mapper/vg-lv, เปเบเบฒเบฐเบงเปเบฒ เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเปเบฒเบเบปเบเบเบฒเบเปเบเปเบเบชเปเบงเบเบเบตเปเบเปเบญเบเบเปเบฒเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ.
เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเป UUID เบชเปเบฒเบฅเบฑเบ LVM เปเบเบฒเบฐเบงเปเบฒ UUID เบเบญเบเบเบฐเบฅเบดเบกเบฒเบ LVM เปเบฅเบฐเบเบฒเบเบเปเบฒเบเบเบญเบเบเบงเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบฑเบ.Mount /dev/mapper/root-root.. เบชเบญเบเปเบเบทเปเบญเบเป?เปเบกเปเบเปเบฅเปเบง. เบขเปเบฒเบโเปเบเปโเบเบญเบ. เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบญเบ BTRFS. เบฅเบฐเบเบปเบเปเบเบฅเปเบเบตเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฑเปเบเปเบเปเบซเบผเบฒเบเบเบฑเปเบเบเปเบงเบ subvols เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เปเบเบทเปเบญเบเบเบฒเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบฝเบงเบเบฑเบเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบเบฐเบเปเบฒเปเบซเปเบเปเปเปเบเบตเบเบชเปเบฒเบเบเบฒเบเบเปเบฒเบ LVM เบเบญเบเบเบฐเบฅเบดเบกเบฒเบ BTRFS เบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง. เบเปเบฒเบเบญเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบเบงเบฒเบกเปเบเบเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบ reboot.
เบกเบฒเบชเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ 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
เบกเบฑเบเปเบกเปเบเบซเบเบฑเบ..?เบเบงเบโเปเบฎเบปเบฒโเปเบเปโเปเบเบตเบโเปเบซเปโเปเบเปโเบเบฒเบโเบเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบปเบงโเบญเบฑเบโเบเบฐโเปเบโเบกเบฑเบโเบเบญเบโเบชเบฐโเบเบธเบโเปเบเบตโเบเบฒเบ LVM เปเบกเบทเปเบญโเปเบเบดเบ 90% เบเบญเบโเบเบทเปเบโเบเบตเปโเบเบญเบโเบเบญเบโเปเบเบ 5% เบเบญเบโเบเบฐโเบฅเบดโเบกเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเปเบกเบเปเบฒเบเบงเบเบชเบนเบเบชเบธเบเบเบญเบเบเบฑเบ cache เบชเปเบฒเบฅเบฑเบ LVM cache.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบญเบเบเบฑเบเบเปเปเปเบซเป LVM เบเบญเบเบซเบฒเบเบฐเบฅเบดเบกเบฒเบ LVM (PV) เปเบ:
- เบญเบธเบเบฐเบเบญเบเบเบตเปเบกเบตเปเบเบ LVM (cdata)
- เบญเบธเบเบฐเบเบญเบ cache เปเบเบเปเบเป LVM cache, bypassing cache ( _corig). เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโ, เบญเบธโเบเบฐโเบเบญเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒโเบเบปเบงโเบกเบฑเบโเปเบญเบโเบเบฐโเบเบฑเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเบฐโเปเบเบโเปเบเบโเบเปเบฒเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒ (เบเบฝเบโเปเบเปโ ).
- เบญเบธเบเบฐเบเบญเบเบเบตเปเบกเบต LVM cache metadata (cmeta)
- เบญเบธเบเบฐเบเบญเบเบเบฑเบเบซเบกเบปเบเปเบ VG เบเบตเปเบกเบตเบฎเบนเบเบเบฒเบเบเบทเป. เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบฎเบนเบเบเบฒเบเปเบเปเบเบเบญเบเปเบเบทเปเบญเบ virtual, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบ LVM เปเบเปเบฎเบเปเบเบทเปเบญเปเบเบตเบเปเบเปเบเบฐเบฅเบดเบกเบฒเบเบเบตเปเปเบเบฑเบเบเบญเบ OS เปเบเบ.
- เบญเบธเบเบฐเบเบญเบเบเบฑเบเปเบปเบเปเบ VG เบเปเบงเบเบเบฒเบเบชเบณเบฎเบญเบเบเบทเป. เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบชเปเบฒเปเบเบปเบฒเบชเปเบฒเบฎเบญเบเบเบญเบเบฎเบนเบเบเบฒเบเปเบเบทเปเบญเบ virtual.
- เบญเบธเบเบฐเบเบญเบเบเบฑเบเปเบปเบเบเบตเปเบกเบตเบเบทเปเบฅเบปเบเบเปเบฒเบเบเปเบงเบ โgpvโ (เบเบฐเบฅเบดเบกเบฒเบเบเบปเบงเบเบดเบเบเบญเบเปเบเบ)
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเบเปเบเปเบเบฒเบเบฎเบญเบเบฎเบฑเบ DISCARD เปเบกเบทเปเบญเบชเปเบฒเบเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบเบขเบนเปเปเบ LVM VG. เบฅเบฐโเบกเบฑเบโเบฅเบฐโเบงเบฑเบ. เบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบเบฒเบเบฅเบถเบ LVs เปเบ SSD เบเปเบญเบเบเปเบฒเบเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบ. เบเบตเปเปเบเบเบชเบฐเปเบเบฒเบฐเปเบกเปเบเปเบเปเบเบฑเบ SSD RAID 6. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบญเบตเบเบเบฒเบกเปเบเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเป, เบเบฑเปเบเบเบฑเปเบเบเบตเปเบเบฐเบเปเปเบเบฑเบเบเบงเบฒเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบตเบ.
เบกเบฒเบญเบฑเบเปเบเบเบฎเบนเบเบเบฒเบ initramfs:
#update-initramfs -u -k all
เบเบดเบเบเบฑเปเบเปเบฅเบฐเบเบฑเปเบเบเปเบฒ grub:
#apt-get install grub-pc
#apt-get purge os-prober
#dpkg-reconfigure grub-pc
เบเบฐเปเบฅเบทเบญเบเปเบเปเบเปเบ?เบเบธเบเบเบปเบเบเบตเปเปเบเบฑเบ sd*. เบฅเบฐเบเบปเบเบเบฐเบเปเบญเบเบชเบฒเบกเบฒเบเบเบนเบเบเบฒเบเปเบ SATA เบซเบผเบท SSD เบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเป.
เปเบเบฑเบเบซเบเบฑเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบถเปเบเปเบเบตเปเบก os-prober..?เบชเปเบฒเบฅเบฑเบเปเบญเบเบฐเบฅเบฒเบเบซเบผเบฒเบเปเบเบตเบเปเบเปเบฅเบฐเบกเบทเบซเบผเบดเปเบ.
เบกเบฑเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเบเปเบฒเบซเบเบถเปเบเปเบ RAIDs เบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเปเบเบธเบเปเบเบก. เบกเบฑเบเบเบฐเบเบฒเบเบฒเบกเบเบปเปเบเบซเบฒ OS เปเบเบเบฒเบเบดเบเบฑเบเบเบตเปเปเบเปเปเบเปเบเบทเปเบญเบ virtual เบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฎเบฒเบเปเบงเบเบตเป.
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบญเบเปเบซเปเบกเบฑเบ, เปเบเปเบเบทเปเปเบงเปเบเปเบฒเบเปเบเบดเบเบเบฑเบเบซเบกเบปเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบเบญเบเบซเบฒเบชเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบฑเบเบกเบท naughty เบญเบญเบเปเบฅเบเป.
เบเปเบงเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบเบเบปเปเบ. เบกเบฑเบเปเบเบดเบเปเบงเบฅเบฒเปเบฅเปเบงเบเบตเปเบเบฐเบเบดเบเปเบเบตเบ OS เบเบตเปเบเบดเบเบเบฑเปเบเปเปเป. เบขเปเบฒเบฅเบทเบกเปเบญเบปเบฒ Live CD/USB เบเบตเปเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเป.
#exit
#reboot
เปเบฅเบทเบญเบเปเบเปเบเบญเบ SATA SSDs เปเบเบฑเบเบญเบธเบเบฐเบเบญเบ boot.
LVM เปเบ SATA SSD
เปเบเบเบธเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเป booted เปเบเบปเปเบฒเปเบเปเบ OS เปเบซเบกเปเปเบฅเปเบง, เบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเปเบฒเบ, เปเบซเบกเบฒเบฐเบชเบปเบก, เปเบเบตเบ terminal emulator, เปเบฅเบฐเปเบเบตเบเบเบปเบง:
#sudo bash
เปเบซเปเบชเบทเบเบเปเป.
"เปเบฅเบตเปเบกเบเบปเปเบ" array เบเบฒเบ SATA SSD:
#blkdiscard /dev/md2
เบเปเบฒเบกเบฑเบเบเปเปเปเบฎเบฑเบเบงเบฝเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฐเบเบฒเบเบฒเบก:
#blkdiscard --step 65536 /dev/md2
เบชเปเบฒเบ LVM VG เปเบ SATA SSD:
#pvcreate /dev/md2
#vgcreate data /dev/md2
เปเบเบฑเบเบซเบเบฑเบ VG เบญเบทเปเบ..?เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบกเบตเบฎเบฒเบเบเบตเปเบกเบตเบเบทเป VG เปเบฅเปเบง. เปเบเบฑเบเบซเบเบฑเบเบเปเปเปเบเบตเปเบกเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเบปเปเบฒเปเบเปเบ VG เบเบฝเบง?
เบเปเบฒเบกเบตเบซเบผเบฒเบ PVs เปเบ VG, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบทเปเบญเปเบซเป VG เบเบทเบเปเบเบตเบเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ, PV เบเบฑเบเบซเบกเบปเบเบเบฐเบเปเบญเบเบกเบตเบขเบนเป (เบญเบญเบเปเบฅเบเป). เบเปเปเบเบปเบเปเบงเบฑเปเบเปเบกเปเบ LVM RAID, เปเบเบดเปเบเบเบงเบเปเบฎเบปเบฒเปเบเบเปเบเบเบเบฐเบเบฒเบเปเปเปเบเปเปเบเป.
เบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบเบงเปเบฒเบเปเบฒเบกเบตเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบฅเบง (เบเบฒเบเบญเปเบฒเบเบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบกเบนเบ) เบขเบนเปเปเบเปเบเปเบเบญเบ RAID 6 arrays, เบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฐ boot เบเบฒเบกเบเบปเบเบเบฐเบเบดเปเบฅเบฐเปเบซเปเปเบญเบเบฒเบเบเบตเปเบเบฐเปเบเปเปเบเบเบฑเบเบซเบฒ.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบเบฅเบฐเบเบฑเบเบเปเบฒเบญเบดเบเบเบญเบเบเบฒเบเบเปเปเบกเบตเบเบปเบงเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบเบเบฐเปเบเบเบเบญเบ "เบชเบทเป" เบเบฒเบเบเปเบฒเบเบฎเปเบฒเบเบเบฒเบเปเบเบปเปเบฒเปเบเปเบ VG เปเบเบเบเปเบฒเบเบซเบฒเบ.
เปเบงเบปเปเบฒเบเบฒเบเบงเบดเบเบฐเบเบฒเบชเบฒเบ, เบญเบฒเปเบฃ RAID เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบฑเบเบเบญเบ "เปเบเปเบกเบเบเบงเบฒเบกเบซเบเปเบฒเปเบเบทเปเบญเบเบท" เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบเปเบฒเบเบเปเปเบเบงเบเบชเปเบฒเบเบเบธเบเบเบปเปเบงเปเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒเปเบเบเบเบฒเบเบเบตเบเบเบฑเปเบเปเบเบปเปเบฒเปเบเปเบ VG เบเบฝเบง.
เบเบฒเบเบเบฐเบเบปเบเบเบปเบงเบเบญเบ LVM เปเบเบฅเบฐเบเบฑเบ "เบฎเบฒเบเปเบง" เบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฑเบเบเบดเปเบเบชเปเบงเบเบเปเบฒเบเปเบเบญเบ RAID arrays เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบเบฒเบเบชเบปเบกเบเบปเบเบเบงเบเบกเบฑเบเบเปเบงเบเบงเบดเบเบตเบเปเบฒเบเป. เบเบปเบงเบขเปเบฒเบ - เปเบฅเปเบ เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ bcache + LVM เบเบฒเบเป, bcache + BTRFS, LVM cache + LVM เบเบฒเบเป, เบเบฒเบเบเบฑเปเบเบเปเบฒ ZFS เบเบตเปเบเบฑเบเบเปเบญเบเบเบฑเบ cache, เบซเบผเบทเบเบฐเบชเบปเบก hellish เบญเบทเปเบเปเปเบเบทเปเบญเบฅเบญเบเบเบฝเบเบเบฝเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบ.
เปเบเบฅเบฐเบเบฑเบ โเบฎเบฒเบเปเบงโ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบเปเบญเบฑเบเบญเบทเปเบเบเบญเบเบเบฒเบเบเบฐเบฅเบดเบกเบฒเบ LVM โเปเบฒโ เปเบเบปเปเบฒเบเบตเปเบเบต. เบเปเปเบเบปเบเปเบงเบฑเปเบเบเปเปเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบญเบฒเบเบเบฐเปเบเบฑเบเบเบฒเบเปเบเปเบเบเบฑเบเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเปเบเปเบงเบฅเบฒเบเบตเป, เบเบนเปเบญเปเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเปเบเปเปเบฅเบตเปเบกเบชเบปเบเปเบชเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเปเบฝเบงเบเบฑเบ doll เบฎเบฑเบ.
LVM เปเบ SATA HDD
#pvcreate /dev/md3
#vgcreate backup /dev/md3
VG เปเปเปเบญเบตเบเปเบฅเปเบง..?เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเปเปเบงเปเบฒเบเปเบฒ disk array เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบเบเปเปเบกเบนเบเบฅเบปเปเบกเปเบซเบฅเบง, เบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบทเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเปเบเบฑเบเบเบปเบเบเบฐเบเบด, เปเบเบเบฐเบเบฐเบเบตเปเบฎเบฑเบเบชเบฒเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเปเบกเบนเบเบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบเบเบฒเบกเบเบปเบเบเบฐเบเบด. เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฑเบเบซเบฒเบเบฒเบเปเบเบตเบเปเบเป VG, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ VG เปเบเบเบเปเบฒเบเบซเบฒเบ.
เบเบฑเปเบเบเปเบฒ cache LVM
เบกเบฒเบชเปเบฒเบ LV เปเบ NVMe RAID 1 เปเบเบทเปเบญเปเบเปเบกเบฑเบเปเบเบฑเบเบญเบธเบเบฐเบเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ.
#lvcreate -L 70871154688B --name cache root
เปเบเบฑเบเบซเบเบฑเบเบเบถเปเบเบกเบตเปเปเบญเบ...?เบเบงเบฒเบกเบเบดเบเปเบกเปเบเบงเปเบฒ NVMe SSDs เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบกเบต cache SLC. 4 gigabytes เบเบญเบ "เบเบฃเบต" เปเบฅเบฐ 18 gigabyte เบเบญเบเปเบเบเบฒเบกเบดเบเปเบเบทเปเบญเบเบเบฒเบเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบเบเบญเบเบเบญเบเบขเบนเปเปเบ 3-bit MLC. เปเบกเบทเปเบญ cache เบเบตเปเบซเบกเบปเบเปเบฅเปเบง, NVMe SSDs เบเบฐเบเปเปเปเบงเบเบงเปเบฒ SATA SSD เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเบกเบต cache. เบเบปเบงเบเบดเบเปเบฅเปเบง, เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบตเป, เบกเบฑเบเบเปเปเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบเปเบเบชเปเบงเบเปเบเบ LVM เบเบฐเบซเบเบฒเบเปเบซเบเปเบเบงเปเบฒเบชเบญเบเปเบเบปเปเบฒเบเบญเบเบเบฐเบซเบเบฒเบ SLC cache เบเบญเบ NVMe drive. เบชเปเบฒเบฅเบฑเบเปเบ NVMe เบเบตเปเปเบเป, เบเบนเปเบเบฝเบเบเบทเบงเปเบฒเบกเบฑเบเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเป 32-64 gigabytes เบเบญเบ cache.
เบเบฐเบซเบเบฒเบเบเบฒเบเบดเบเบฑเบเบเบตเปเปเบซเปเบกเบฒเปเบกเปเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบฅเบฐเบเบฝเบ cache, cache metadata, เปเบฅเบฐ metadata backup 64 gigabyte.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบดเบเบฅเบฐเบเบปเบเปเบเบทเปเบญเบ, LVM เบเบฐเบซเบกเบฒเบ cache เบเบฑเบเบซเบกเบปเบเปเบเบฑเบเปเบเบทเปเบญเบเปเบฅเบฐเบเบฐ synchronize เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบตเปเบเบฐเบเบทเบเปเบฎเบฑเบเบเปเปเบฒเบเบธเบเบเบฑเปเบเบเบตเป lvchange เบเบทเบเปเบเปเปเบเบญเบธเบเบฐเบเบญเบเบเบตเปเบเบปเบเบเปเบงเบฒเบฅเบฐเบเบปเบเบเบฐเบเบดเบเปเบเบตเบเปเบซเบกเปเบญเบตเบเบเบฑเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบชเปเบฒเบ cache เบเบฑเบเบเบตเปเบเบเปเบเป script เบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก.
เบกเบฒเบชเปเบฒเบ LV เปเบ SATA RAID 6 เปเบเบทเปเบญเปเบเปเบกเบฑเบเปเบเบฑเบเบญเบธเบเบฐเบเบญเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ.
#lvcreate -L 3298543271936B --name cache data
เปเบเบฑเบเบซเบเบฑเบเบเบฝเบเปเบเปเบชเบฒเบก terabytes ..?เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเปเบเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป SATA SSD RAID 6 เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบญเบทเปเบเป. เบเบฐเปเบฒเบเบเบญเบเบเบทเปเบเบเบตเปเปเบเบฑเบเบเปเปเบกเบนเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบถเปเบเปเบเบเปเบเบทเปเบญเบเปเบซเบง, เปเบเปเบงเบฅเบฒเบเบดเบ, เปเบเบเบเปเปเบกเบตเบเบฒเบเบขเบธเบเบฅเบฐเบเบปเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบขเบธเบเบเบปเปเบงเบเบฒเบงเปเบฅเบฐเปเบเบตเบเปเบเป cache เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เปเบเปเบเบฐเปเบซเบเบเบเบตเปเปเบเบเปเบเบฑเปเบเบเบญเบ LVM-cache over, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, 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.
เบกเบฒเบชเปเบฒเบ เปเบฅเบฐเปเบเบตเบเปเบเป cache:
#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 cache block เบเบปเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบญเบ LVM เบเบฒเบเป. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบฐเบซเบเบฒเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒ, เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเบตเบเบงเปเบฒเบเบฐเบเบดเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบถเบเปเบเบเบชเบธเปเบก.
64k เปเบกเปเบเบเบฐเบซเบเบฒเบเบเบฅเบฑเบญเบเบเปเบฒเปเบชเบธเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบชเปเบฒเบฅเบฑเบ LVM เบเบฒเบเป.
เบฅเบฐเบงเบฑเบเบเบฝเบเบเบทเบ..!เปเบกเปเบเปเบฅเปเบง. เบเบฐเปเบเบเบเบญเบ cache เบเบตเป defers เบเบฝเบ synchronization เบเบฑเบเบญเบธเบเบฐเบเบญเบ cache. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒ cache เบชเบนเบเปเบชเบ, เบเปเบฒเบเบญเบฒเบเบเบฐเบชเบนเบเปเบชเบเบเปเปเบกเบนเบเปเบเบญเบธเบเบฐเบเบญเบ cache. เบเปเปเบกเบฒ, เบเบนเปเบเบฝเบเบเบฐเบเบญเบเบเปเบฒเบเบงเปเบฒเบกเบฒเบเบเบฐเบเบฒเบเปเบ, เบเบญเบเปเบซเบเบทเบญเบเบฒเบ NVMe RAID 1, เบชเบฒเบกเบฒเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบทเปเบญเบเบปเบเปเบเบตเบเบเบงเบฒเบกเบชเปเบฝเบเบเบตเป.
เบเบฐเปเบเบ cache เบเบตเปเปเบเปเบเบทเบเปเบฅเบทเบญเบเปเบเบเปเบเบเบเบฐเบเบฒเปเบเบทเปเบญเบเบปเบเปเบเบตเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเบเบตเปเบเปเปเบเบตเบเบญเบ 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.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ cache เบเปเบฒเบเปเบฒเปเบเบฑเบเบเปเบงเบเบเปเบฒเบชเบฑเปเบเบเบฝเบง:
#lvconvert -y --uncache cache/cachedata
เบเบตเปเปเบกเปเบเปเบฎเบฑเบเบญเบญเบเปเบฅเบเป. LVM เบเบฝเบเปเบเปเบเบฐ sync cache เบเบฑเบ disk, เปเบญเบปเบฒเบกเบฑเบเบญเบญเบ, เปเบฅเบฐเบเปเบฝเบเบเบทเป cachedata_corig เบเบฑเบเบเบทเบเปเบเบเปเบญเบ cachedata.
เบเบฒเบเบเบฑเปเบเบเปเบฒ LVM เบเบฒเบ
เบเปเปเบซเปเบเบฒเบเบเบฐเปเบเบเบฐเบกเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบทเปเบเบเบตเปเบซเบผเบฒเบเบเบฒเบเปเบเบชเปเบฒเบฅเบฑเบ LVM เบเบฒเบ metadata:
#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
เบเบนเบเบเปเบงเบเบชเบญเบ เปเบฅเบฐเปเบเบตเปเบก 4194304B เบชเปเบฒเบฅเบฑเบ LVM PV metadata: 8594128896B
เปเบซเปเบชเปเบฒเบเบเบฒเบเบดเบเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบเบเปเบฝเบงเบเบฑเบ NVMe RAID 1 เปเบเบทเปเบญเบงเบฒเบ LVM เบเบฒเบ metadata เปเบฅเบฐเบชเปเบฒเปเบเบปเบฒเบชเปเบฒเบฎเบญเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบชเปเบกเบฑเบ:
#lvcreate -L 8594128896B --name images root
เปเบเบทเปเบญโเบซเบเบฑเบ..?เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบฒเบกเบญเบฒเบเบเบฐเปเบเบตเบเบเบทเปเบ: เปเบเบฑเบเบซเบเบฑเบเบงเบฒเบ LVM เบเบฒเบ metadata เปเบเบเบเปเบฒเบเบซเบฒเบเบเปเบฒเบกเบฑเบเบเบฑเบเบเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบ NVMe เปเบฅเบฐเบเบฐเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบง.
เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบงเบฒเบกเปเบงเปเบกเปเบเบชเปเบฒเบเบฑเบเบขเบนเปเบเบตเปเบเบตเป, เบกเบฑเบเปเบกเปเบเบขเบนเปเปเบเบเบฒเบเปเบซเบเบเบปเบเบเบปเปเบเบเป. เบชเบดเปเบเบเบตเปเปเบกเปเบเบงเปเบฒ cache เปเบกเปเบเบเบธเบเบเบญเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบง. เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบญเบฒเบเบเบฐเปเบเบตเบเบเบทเปเบเบเบฑเบเบกเบฑเบ, เปเบฅเบฐเบเปเบฒ LVM เบเบฒเบ metadata เบเบทเบเปเบเบฑเบเปเบงเป, เบกเบฑเบเบเบฐเปเบฎเบฑเบเปเบซเปเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบชเบนเบเปเบชเบเปเบเบซเบกเบปเบ. เบเปเบฒเบเปเปเบกเบต metadata เบเบปเบเบเปเบงเบ, เบกเบฑเบเบเบฐเปเบเบทเบญเบเปเบเบฑเบเปเบเบเปเปเปเบเปเบเบตเปเบเบฐเบฅเบงเบเบฅเบงเบกเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเป.
เปเบเบเบเบฒเบเบเปเบฒเบเปเบกเบเบฒเปเบเบเบฒเปเบเบซเบฒเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบตเปเปเบเบเบเปเบฒเบเบซเบฒเบ, เปเบเปเปเบง, เบเบฐเบฅเบดเบกเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบฎเบฑเบเบเบฐเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเปเบกเบเบฒเปเบเบเบฒเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบชเบนเบเปเบชเบเปเบเบ เบซเบผเบทเบเบฒเบเบชเปเปเบฅเบฒเบเบเบฑเบเบซเบผเบงเบ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบฒเบกเปเบชเบเบซเบฒเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบเบตเบเบเบฒเบเบเบฒเบเบชเบนเบเปเบชเบเปเบเบเบเบฐเบเบทเบเบเปเบญเบเบเบดเปเบเบเบฒเบเปเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเป, เปเบเบดเปเบเบเบฐเปเบฎเบฑเบเปเบซเปเบเบฑเปเบเบเบญเบเบเบฒเบเบเบทเปเบเบเบปเบงเบเปเบฒเบเบเบถเปเบเปเบเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบฐเบซเบเบฒเบ. เบเปเบงเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบชเบนเบ, เบเบงเบฒเบกเปเบชเบเบซเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบทเบเบเบทเปเบเบเบนเปเบเบเปเบเปเบเบฑเบเบเบถเบ FS.
เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเปเบฒเบเบฒเบเบเปเบฒเบเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ cache เปเบเปเบเบทเบ synchronized เบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบเบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบญเบญเบเปเบเบเบเบฒเบเปเบเบเบญเบ LVM เบเบฒเบ, เบเบงเบฒเบกเบชเบปเบกเบเบนเบเบเบญเบ snapshot เบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบชเบนเบเปเบชเบ cache. .
เบเปเปเบซเปเบชเปเบฒเบ 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เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบชเบดเปเบเบเบตเปเปเบซเบกเบเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบขเปเบฒเบเปเบเปเบเบดเบ - เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเปเปเปเบซเปเบเปเปเบกเบนเบเบเบฒเบเปเบเบทเปเบญเบ virtual เบเบฒเบเบเบฒเบเบฎเบปเปเบงเปเบซเบฅเปเบเบซเบฒเปเบเบทเปเบญเบ virtual เบญเบทเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเปเบเบเบขเบฒเบเบเบทเปเบเบเบตเป - zeroing เบเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบตเปเบกเบเบงเบฒเบกเปเบงเบเบญเบเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเปเบเบเบฅเบฑเบญเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒ 64k. เบเบฒเบเบเบฝเบเปเบเปเบเบตเปเบซเบเปเบญเบเบเบงเปเบฒ 64k เปเบเบซเบฒเบเบทเปเบเบเบตเปเบเบตเปเบเปเปเปเบเปเบเบฑเบเบชเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเปเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบฐเบเบฒเบเปเบเบฑเบ 64K edge-aligned เปเบ cache. เบเบตเปเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบเบเปเบฒเบ cache, bypassing เบญเบธเบเบฐเบเบญเบ cache.
เปเบซเปเบเปเบฒเบ 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 gigabytes เบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ SSD เบเบฒเบเบเปเบฒเบ.
เบเบฒเบเบญเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบฝเบเบเบฐเบชเบปเบก?เปเบกเปเบเปเบฅเปเบง. เบกเบฑเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเปเบฅเบฐเบเบฝเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบกเบฑเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบเบฐเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒ cache เบเบฑเบเบซเบกเบปเบเบเบทเบ synchronized เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฝเบเบเบตเปเปเบฎเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเปเบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเบญเปเบฒเบ.
เบเบปเบเปเบเปเบฎเบฑเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบเปเบฅเบฐเบญเบฑเบเบเปเปเบกเบฒเบเปเบญเบเบงเปเบฒ cache เปเบฅเบฐเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเป, เปเบฅเบฐเบเบฑเบเบเบถเปเบเบเบฑเบเบงเปเบฒเบฅเบฐเบเบปเบเบเบธเปเบกเบเบญเบเปเบเบทเปเบญ synchronize cache เบเบตเปเปเบเบฑเบกเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบชเบธเบเบเปเบฒเบ.
เปเบเบเบฑเบเบเบฒเบชเบดเปเบเบญเบทเปเบเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบเบฐเบเปเบฒเปเบซเปเบงเบฑเบเปเบเบเบเบงเบฒเบกเปเบงเปเบเบเบฐเบฅเบดเบกเบฒเบเบเบตเปเบเบฒเบเปเปเบเบฑเบกเบเบตเปเปเบฅเปเบงเบเบฒเบเบเบฒเบเบเปเบฒเบเบฎเบนเบเบเบตเปเบเบฝเบเปเบเปเบเบทเบเบเปเบฒเบ. เบเบนเปเบเบฝเบเปเบเปเบกเบตเปเบญเบเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเบดเบเบตเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเปเบฅเบฑเปเบเบขเปเบฒเบเปเบงเบงเบฒเบซเบผเบฑเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเปเบฒเบเบเปเบฒเบญเบดเบ, เปเบเบเบชเบฐเปเบเบฒเบฐเปเบเปเบงเบฅเบฒเบเบตเป cache เบเบฑเบเบเปเปเบเบฑเบเปเบเบฑเบก. เบญเบฑเบเบเบตเปเปเบเบตเบเบเบถเปเบเบเปเบญเบเบเบฒเบเบเบฑเบเบฅเบญเบ-on-write write semantics, เบเบฒเบเบเบฑเบเบฅเบฝเบเบเบญเบ cache เปเบฅเบฐ block volume เบเบฒเบเป, เปเบฅเบฐเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบฒเบเบเบฝเบเปเบเบเบชเบธเปเบกเปเบชเป RAID 6 เบเบฒเบเปเบเบฑเบเบเบฒเบเบญเปเบฒเบเปเบเบเบชเบธเปเบกเบเบฒเบ RAID 6 เบเบดเบเบเบฒเบกเบเปเบงเบเบเบฒเบเบเบฝเบเปเบชเป cache. เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฒเบเบญเปเบฒเบเปเบเบเบชเบธเปเบกเบเบฒเบ RAID 6 เปเบกเปเบเบชเบนเบเปเบเบดเบ 6 เปเบเบทเปเบญ (เบเปเบฒเบเบงเบ SATA SSDs เปเบเบญเบฒเปเบฅ) เปเบงเบเบงเปเบฒเบเบฒเบเบเบฝเบ. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เบเบฑเบเบชเปเบฒเบฅเบฑเบ CoW เบเบทเบเบเบฑเบเบชเบฑเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบฒเบเบชเบฐเบเบธเบเปเบเบตเบเบฒเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบฑเบเบเบถเบ, เบชเปเบฒเบฅเบฑเบเบชเปเบงเบเปเบซเบเป, เบเบฑเบเบเปเบฝเบเปเบเบฑเบเบฅเปเบฒเบเบฑเบ.
เบเบฑเบเบชเบญเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบผเบปเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฐเปเบซเบเบเบเบญเบเบเปเบฒเบ.
Cache เบเบฒเบเบเปเบฒเบ โเบชเบญเบเบเปเบญเบโ
เปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบชเปเบฝเบเบเบญเบเบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบกเบนเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบฒเบกเปเบชเบเบซเบฒเบ / เบเบฒเบเบชเบนเบเปเบชเบเบเบญเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ, เบเบนเปเบเบฝเบเบชเบฐเปเบซเบเบตเปเบซเปเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบซเบกเบธเบเบเบญเบ snapshots เปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบเบงเบฒเบกเบชเบปเบกเบเบนเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบเปเบฅเบฐเบเบตเบเบตเป.
เบเปเบฒเบญเบดเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ metadata เบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบขเบนเปเปเบเบญเบธเบเบฐเบเบญเบ uncached, metadata เบเบฐเบชเบญเบเบเปเบญเบเปเบฅเบฐเบเบฒเบเบชเบนเบเปเบชเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเบเบฐเบเบทเบเปเบเบเบญเบญเบเบเบฒเบเปเบเบเบฑเบเบเปเปเบกเบนเบ.
เบงเบปเบเบเบญเบเบเบฒเบเบซเบกเบธเบเบเบญเบ snapshot เบเปเปเปเบเบเบตเปเบฎเบฑเบเบเบฐเบเบฑเบเบเบงเบฒเบกเบชเบปเบกเบเบนเบเบเบญเบเบเปเปเบกเบนเบเบเบฒเบเปเบ snapshots เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบชเบนเบเปเบชเบ cache:
- เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบตเปเบกเบตเบเบทเป <name>, เบชเปเบฒเบ snapshot เบเบตเปเบกเบตเบเบทเป <name>.cached
- เปเบซเปเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบชเบนเบเบเบตเปเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบ:
#lvchange --quiet --cachesettings "migration_threshold=16384" cache/cachedata
- เปเบ loop เบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเบดเปเบเบเปเบฒเบเบงเบเบเบญเบเบเบฑเบเปเบเบทเปเบญเบเปเบ cache:
#lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}'
เบเบปเบเบเปเบงเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบชเบนเบ. เบเปเบฒเบชเบนเบเบซเบฒเบเปเบเบเบปเบเปเบเบตเบเปเบ, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบชเปเบฒเบเปเบเบเบเบฒเบเบเปเบฝเบ cache เบเบปเปเบงเบเบฒเบงเปเบเบฑเบเบฎเบนเบเปเบเบเบเบฒเบเบเบฝเบเบเปเบฒเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฒเบเบเปเบฒเบเบถเบเปเบเบดเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบงเบฒเบกเปเบงเบเบญเบ SATA เปเบฅเบฐ NVMe SSD arrays เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ TBW เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เบเปเบฒเบเบเบฐเบชเบฒเบกเบฒเบเบเบฑเบเปเบงเบฅเบฒเบขเปเบฒเบเปเบงเบงเบฒเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฝเบ cache mode, เบซเบผเบทเบฎเบฒเบเปเบงเบเบญเบเบเปเบฒเบเบเบฐเบเบดเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบกเบฑเบเบขเบนเปเปเบ. เบชเบญเบโเบชเบฒเบกโเบกเบทเป. เปเบเบทเปเบญเบเบเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบฅเบฐเบเบปเบเปเบกเปเบเบเปเปเบชเบฒเบกเบฒเบเบขเบนเปเบเบฒเบเปเบเป 100% เบเบญเบเบเบฒเบเปเบซเบผเบเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ. NVMe SSDs เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบเบเบฒเบเบเบฝเบ 100% เบเบฐเบซเบกเบปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบ 3-4 เบกเบทเป. SATA SSDs เบเบฐเบกเบตเบญเบฒเบเบธเบเบฝเบเปเบเปเบชเบญเบเปเบเบปเปเบฒ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบฒเบเปเบซเบผเบเบชเปเบงเบเปเบซเบเปเปเบเบซเบฒเบเบฒเบเบญเปเบฒเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฒเบเบฅเบฐเปเบเบตเบเปเบเปเบฅเบเบฐเบชเบฑเปเบเบเบญเบเบเบดเบเบเบฐเบเปเบฒเบเบตเปเบชเบนเบเบเบตเปเบชเบธเบเบฅเบงเบกเบเบฑเบเบเบฒเบเปเบซเบผเบเบเปเปเบฒเปเบเบเบชเบฐเปเบฅเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบ. - เบเบฑเบเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเป (เบซเบผเบทเปเบฎเบฑเบเปเบซเป) เปเบเบฑเบเบชเบนเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฝเบเบเบทเป <name>.cached เปเบเบฑเบ <name>.committed. <name>.committed เปเบเบปเปเบฒเบเบทเบเบฅเบถเบ.
- เบเบฒเบเปเบฅเบทเบญเบ, เบเปเบฒเปเบเบเปเบเบฑเบก 100%, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบชเปเบฒเบเปเบซเบกเปเปเบเบเบชเบฐเบเบดเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบฅเปเบฒเบเบกเบฑเบ. เบเปเบงเบ cache เปเบเบดเปเบเบซเบงเปเบฒเบเปเบเบปเปเบฒ, เบฅเบฐเบเบปเบเปเบฎเบฑเบเบงเบฝเบเปเบงเบเบถเปเบเบซเบผเบฒเบเปเบกเบทเปเบญเบเบฝเบ.
- เบเบฑเปเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบเบฑเบเบชเบนเบ:
#lvchange --quiet --cachesettings "migration_threshold=0" cache/cachedata
เบเบตเปเบเบฐเบเปเบญเบเบเบฑเบเบเปเปเปเบซเป cache เบเบฒเบเบเบฒเบ synchronizing เบเบฑเบเบชเบทเปเบเบปเปเบเบเปเบเบปเปเบงเบเบฒเบง. - เบเบงเบเปเบฎเบปเบฒเบฅเปเบเปเบฒเบเบปเบเบเปเบงเบฒเบเปเบญเบเบเปเบฒเบเบซเบผเบฒเบเบเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบชเบปเบกเบขเบนเปเปเบ cache
#lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}'
เบซเบผเบทเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบฐเบเบดเบ. - เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเปเปเบฒเบญเบตเบเบเบฑเปเบ.
เปเบเบฑเบโเบซเบเบฑเบโเบเบถเปเบโเบกเบตโเบเบงเบฒเบกโเบซเบเบธเปเบโเบเบฒเบโเบเบฑเบโเบฅเบฐโเบเบฑเบโเบเบฒเบโเปเบเบทเปเบญเบโเบเปเบฒเบ ...?เบชเบดเปเบเปเบกเปเบเบงเปเบฒเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบดเบ, เบเบฒเบเบเบฑเบเบเบถเบ "เปเบเบเบชเบธเปเบก" เบเบปเบงเบเบดเบเปเบฅเปเบงเบเปเปเปเบกเปเบเปเบเบเบชเบธเปเบกเบขเปเบฒเบเบชเบปเบกเบเบนเบ. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบซเปเบเบฑเบเบเบฐเปเบซเบเบเบเบฒเบเบเบตเปเบกเบตเบเบฐเบซเบเบฒเบ 4 เบเบดเปเบฅเปเบ, เบกเบตเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบชเบนเบเบเบตเปเปเบเบชเบญเบเบชเบฒเบกเบเบฒเบเบตเบเปเบฒเบเบซเบเปเบฒ, เบเบฒเบเบเบฑเบเบเบถเบเบเบฐเบเบทเบเปเบฎเบฑเบเบขเบนเปเปเบเบเบฐเปเบซเบเบเบเบฝเบงเบเบฑเบเบซเบผเบทเบซเบเบถเปเบเบเบญเบเบเบฐเปเบซเบเบเปเบเปเบเบฝเบ (+- 32K).
เปเบเบเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบเบฑเบเบชเบนเบ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบทเปเบญเบเบเบฒเบเบเบฝเบ synchronization เบขเบนเปเปเบ SATA SSD เปเบฅเบฐเบฅเบงเบเบฅเบงเบกเบเบฒเบเบเปเบฝเบเปเบเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเปเบเบซเบฒเบซเบเบถเปเบ 64K block เปเบ cache. เบเบตเปเบเปเบงเบเบเบฐเบขเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบ SATA SSD เบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ.
เบฅเบฐเบซเบฑเบเบขเบนเปเปเบช..?เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเบนเปเบเบฝเบเบเบทเบงเปเบฒเบเบปเบเปเบญเบเบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเปเปเบเบฝเบเบเปเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ bash scripts เปเบเบฒเบฐเบงเปเบฒเบฅเบฒเบงเบชเบญเบเบเบปเบเปเบญเบ 100% เปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ "google" เบเบตเปเบเบฑเบเปเบเบทเปเบญเบ, เบเบฑเปเบเบเบฑเปเบเบฅเบฒเบงเปเบเบทเปเบญเบงเปเบฒเบฅเบฐเบซเบฑเบเบเบตเปเบฎเปเบฒเบเบเบตเปเบญเบญเบเบกเบฒเบเบฒเบเบกเบทเบเบญเบเบฅเบฒเบงเบเปเปเบเบงเบเบเบทเบเปเบเปเปเบเบเปเบ. เบญเบทเปเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเบเบนเปเบเปเบฝเบงเบเบฒเบเปเบเบเปเบฒเบเบเบตเปเบเบฐเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเบขเปเบฒเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบเบฒเบกเปเบซเบเบเบปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบ, เบเปเบฒเบเปเบฒเปเบเบฑเบ, เปเบฅเบฐ, เบเบฒเบเบเบต, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบญเบญเบเปเบเบเบเบตเปเบชเบงเบเบเบฒเบกเปเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบกเบตเบฅเบฐเบเบปเบ, เบเบฑเปเบเบเบตเปเบเบนเปเบเบฝเบเบเบฐเบเบฒเบเบฒเบกเปเบฎเบฑเบ.
เบฎเบนเบเปเบเบเบเบฒเบเบซเบกเบนเบเบงเบฝเบ snapshot เบเปเบฒเบเปเบเบฑเปเบเบเปเบฒเบงเบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบฝเบเปเบเปเบกเบต snapshot เบชเบฐเปเบซเบกเบต synchronized เบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบเปเบ SATA SSD, เปเบเปเบเบฑเบเบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒ, เบเบฒเบเบเปเบฒเปเบเป utility thin_delta, เปเบเบทเปเบญเบเบญเบเบซเบฒเบงเปเบฒ block เปเบเปเบเปเบเบทเบเบเปเบฝเบเปเบเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบเบญเบเบกเบฑเบ, เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเปเบชเบเบซเบฒเบเบขเบนเปเปเบเบเปเบญเบเบเบดเปเบ. เบเบฐโเบฅเบดโเบกเบฒเบโเบเบปเปเบโเบเปโ, เบเบฒเบโเบเบทเปเบโเบเบปเบงโเบขเปเบฒเบโเบเปเบฒเบโเบเบฒเบโเบซเบผเบฒเบโ.
TRIM/DISCARD เปเบ libvirt/KVM
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบฐเบเบทเบเปเบเปเบชเปเบฒเบฅเบฑเบ KVM เปเบฅเปเบ libvirt, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบตเบเบตเปเบเบฐเบชเบญเบ VMs เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบฝเบเปเบเปเปเบญเบปเบฒเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบ, เปเบเปเบเบฑเบเปเบฎเบฑเบเปเบซเปเบชเบดเปเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบญเบตเบเบเปเปเปเบ.
เบญเบฑเบเบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเบเบณเบฅเบญเบเบเบฒเบเบฎเบญเบเบฎเบฑเบ 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>
เบเบฒเบเบเบปเบเปเบฅเบตเบเบเบฑเปเบเบเปเบฒเบงเบเบฒเบ OSes เปเบเบเบเบทเบเบเบฐเบกเบงเบเบเบปเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเปเบเบ LVM, เปเบฅเบฐเบเบฑเบเปเบเปเบเบทเบเบเบปเบเบเปเบญเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเบเบฑเบเปเบ cache เปเบฅเบฐเปเบเบชเบฐเบเบธเบเปเบเบตเบเบฒเบเป. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโ, เบเบตเปโเปเบกเปเบโเปเบเบตเบโเบเบถเปเบโเบชเปเบงเบโเปเบซเบเปโเปเบกเปเบโเปเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเบเบฑเบโเบเปเบฒโ, เปเบโเปเบงโเบฅเบฒโเบเบตเปโเบฅเบถเบโเบฎเบนเบโเบเบฒเบโเบเปเปโเปเบโ.
BTRFS Backup
เปเบเปเบชเบฐเบเบดเบเบเบตเปเบเปเบญเบกเปเบฅเปเบงเบเบฑเบ เบเบตเปโเบชเบธเบ เบฅเบฐโเบกเบฑเบโเบฅเบฐโเบงเบฑเบโเปเบฅเบฐโ เบขเบนเปเปเบเบเบงเบฒเบกเบชเปเบฝเบเบเบญเบเบเบปเบเปเบญเบ. เบเบนเปเบเบฝเบเบเบฝเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเบงเบเบเบปเบเปเบญเบเปเบฅเบฐเบชเบฐเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบเบเบปเบเปเบญเบ. เบเปเบญเบเปเบเปเปเบเบงเปเบฒเบเบนเปเปเบเป Linux เบเบตเปเบกเบตเบเบฐเบชเบปเบเบเบฒเบเบซเบผเบฒเบเบเบปเบเบกเบตเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, เปเบฅเบฐเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบฅเบญเบเบเบญเบเบเบปเบเบญเบทเปเบ.
เบกเบฒเบชเปเบฒเบเบเบฐเบฅเบดเบกเบฒเบเปเบเบญเบธเบเบฐเบเบญเบเบชเบณเบฎเบญเบ:
#lvcreate -L 256G --name backup backup
เปเบซเปเบเบฑเบเบฎเบนเบเปเบเบเปเบ BTRFS:
#mkfs.btrfs /dev/backup/backup
เบกเบฒเบชเปเบฒเบเบเบธเบ mount เปเบฅเบฐ mount เบชเปเบงเบเบเปเบญเบเบฎเบฒเบเบเบญเบเบฅเบฐเบเบปเบเปเบเบฅเป:
#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
เบเปเปเบซเปเบชเบณเปเบเบปเบฒเบชเบฐเบเบฃเบดเบ:
เบฅเบฐเบซเบฑเบ bash เบเบตเปเบซเบเปเบฒเบขเปเบฒเบเบซเบผเบฒเบ. เปเบเปเบขเบนเปเปเบเบเบงเบฒเบกเบชเปเบฝเบเบเบญเบเบเปเบฒเบเปเบญเบ. เบซเปเบฒเบกโเบเบฝเบโเบเบปเบเปเบฒเบโเปเบโเบฎเปเบฒเบโเปเบซเปโเบเบนเปโเบเบฝเบ...#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 เปเบฅเบฐเบเบฑเบเบฅเบญเบเบเบงเบเบกเบฑเบเปเบเบซเบฒ FS เบญเบทเปเบเปเบเบเปเบเป BTRFS เบชเบปเปเบ / เบฎเบฑเบ.
เบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบเบชเบฒเบกเบฒเบเบเปเบญเบเบเปเบฒเบเบเบฒเบง, เปเบเบฒเบฐเบงเปเบฒ ... เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเปเบกเบนเบเบเบฑเบเบซเบกเบปเบเบเบฐเบเบทเบเบเบฑเบเบฅเบญเบ. เบเบฒเบเปเบเบตเบเบเบปเบงเบเปเปเปเบเบเบฐเปเบงเบซเบผเบฒเบ, เปเบเบฒเบฐเบงเปเบฒ ... เบเบฝเบเปเบเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฐเบเบทเบเบเบฑเบเบฅเบญเบ.
script เบญเบทเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบชเปเปเบเบปเปเบฒเปเบ cron:
เบเบฒเบเบฅเบฐเบซเบฑเบ bash เปเบเบตเปเบกเปเบเบตเบก#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
เบกเบฑเบเปเบฎเบฑเบเบซเบเบฑเบ..?เบชเปเบฒเบ เปเบฅเบฐ synchronizes snapshots เปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเบฐเบฅเบดเบกเบฒเบ BTRFS เบเบตเปเบกเบตเบฅเบฒเบเบเบทเปเบขเบนเปเปเบ FS เบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบ. เบซเบผเบฑเบโเบเบฒเบโเบเบตเปโ, เบกเบฑเบโเบฅเบถเบโเบฎเบนเบโเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโเบเบตเปโเบชเปเบฒเบโเบเบฑเปเบโเบเบถเปเบ 60 เบกเบทเปโเบเปเบญเบโเบซเบเปเบฒโเบเบตเปโ. เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเปเบเบตเบโเบเบปเบงโ, เบฎเบนเบโเบเบฒเบโเบเบฐโเบเปเบฒโเบงเบฑเบโเบเบญเบโเบเบฐโเบฅเบดโเบกเบฒเบโเบเบตเปโเบฅเบฐโเบเบธโเปเบงเปโเบเบฐโเบเบฒโเบเบปเบโเบขเบนเปโเปเบ /backup/btrfs/back/remote/ subdirectories.
เปเบซเปเบชเบดเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ:
#chmod +x /root/btrfs-backup/cron-daily.sh
#chmod +x /root/btrfs-backup/btrfs-backup.sh
เปเบซเปเบเบงเบเปเบเบดเปเบเบกเบฑเบเปเบฅเบฐเปเบชเปเปเบ cron:
#/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
เบกเบฒเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเปเบฒเบฅเบฑเบ scripts:
#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
เบกเบฑเบเปเบฎเบฑเบเบซเบเบฑเบ...?เบเบฐเบเบญเบเบเปเบงเบเบเบธเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบ snapshots เบเบฒเบเปเปเบฅเบฐ synchronizing เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบชเบญเบ snapshots เบเบฒเบเบเบตเปเปเบเปเบฎเบฑเบเปเบเบเบเปเบฒเบ thin_delta เบเบฑเบเบญเบธเบเบฐเบเบญเบ block เบญเบทเปเบเปเบเบเปเบเป ddrescue เปเบฅเบฐ blkdiscard.
script เบญเบทเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบชเปเปเบ cron:
bash เบซเบผเบฒเบเปเบฅเบฑเบเบเปเบญเบ#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
เบกเบฑเบเปเบฎเบฑเบเบซเบเบฑเบ...?เปเบเปเบชเบฐเบเบฃเบดเบเบเปเบญเบเปเปเบฒเปเบเบทเปเบญเบชเปเบฒเบ เปเบฅเบฐเบเบดเปเบเบเปเปเบกเบนเบเบเบฒเบเบชเบณเบฎเบญเบเบเปเปเบกเบนเบเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบตเปเบฅเบฐเบเบธเปเบงเป. เบชเบฐเบเบฃเบดเบเบเบฐเบเปเบญเบเปเบซเปเบเบฒเบเบเปเบฒเบเบเบตเปเบเปเปเปเบเบทเปเบญเบเปเบซเบงเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบตเปเบฅเบฐเบเบธเปเบงเป, เปเบเบดเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเบดเปเบเบเปเปเบกเบนเบเบเบฑเปเบเบชเบธเบเบเปเบฒเบ.
script เบเบตเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเปเบ, เบฅเบฐเบเบธเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบตเปเบเบงเบเปเบฎเบฑเบเบชเปเบฒเปเบเบปเบฒเบชเปเบฒเบฎเบญเบ. เบเบทเปโเบเบตเปโเปเบซเปโเบกเบฒโเปเบกเปเบโเปเบเบทเปเบญโเบเบธเบโเบเบฐโเบชเบปเบโเบเบฒเบโเบชเบฐโเปเบเบโเปเบซเปโเปเบซเบฑเบโเปเบเบปเปเบฒโเบเบฑเปเบโ. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบ script เบเบตเปเบเบฐ synchronize เบเบฐเบฅเบดเบกเบฒเบเบเบฑเบเบซเบกเบปเบ.
เปเบซเปเบชเบดเบเบเบด:
#chmod +x /root/lvm-thin-backup/cron-daily.sh
#chmod +x /root/lvm-thin-backup/lvm-thin-backup.sh
เปเบซเปเบเบงเบเปเบเบดเปเบเบกเบฑเบเปเบฅเบฐเปเบชเปเปเบ cron:
#/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
เบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบฐเบเบฒเบง, เปเบเบฒเบฐเบงเปเบฒ ... เบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเปเบเบฐเบเบทเบ synchronized เบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบเปเบเบเบเบฒเบเบเบฑเบเบฅเบญเบเบเบทเปเบเบเบตเปเบเบตเปเปเบเปเบเบฑเบเบซเบกเบปเบ. เบเปเบเบญเบเปเบเบเบฑเบ LVM เบเบฒเบ metadata, เบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเปเบฒเบเบฑเบเปเบเบเบทเบเบเปเบฒเปเบเปเบเบปเบงเบเบดเบเปเบฅเปเบง, เบชเบฐเบเบฑเปเบเบเบฝเบเปเบเปเบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเบดเบเปเบฅเปเบง blocks เบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบฅเบญเบ.
เบเบฒเบเปเบฅเปเบเบเปเปเปเบเบเบฐเบเบฑเบเบฅเบญเบเบเปเปเบกเบนเบเปเบเบตเปเบกเบเบถเปเบเบเปเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบดเบเบเบฒเบกเบเปเบฒเบ LVM เบเบฒเบ metadata.
เบกเบฒเปเบเบดเปเบเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบ:
#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
เบญเบฑเบเบเบตเปเปเบฎเบฑเบเบซเบเบฑเบเปเบเปเบเบฑเบ dolls เบฎเบฑเบ?
เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐ, เปเบเบทเปเบญเบเบเบฒเบเบเบฐเบฅเบดเบกเบฒเบเปเบฅเปเบเป LVM LV เบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบเบฒเบเบฐเบเบฒเบเบเบญเบ LVM PV เบชเปเบฒเบฅเบฑเบ VGs เบญเบทเปเบเป. LVM เบชเบฒเบกเบฒเบ recursive, เปเบเบฑเปเบ dolls เบฎเบฑเบ. เบเบตเปเปเบฎเบฑเบเปเบซเป LVM เบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบตเปเบชเบธเบ.
PS
เปเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบกเบทเบเบทเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบซเบผเบฒเบเบญเบฑเบ / KVM เปเบเบฑเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบเบธเปเบกเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ / vm เบเบตเปเบกเบตเบเบฒเบเปเบเบเบขเบฒเบเบเบฒเบเบเบนเบกเบชเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเปเปเบฒเบเปเบญเบเบขเบนเปเปเบเบซเบผเบฒเบเบเบฐเบงเบตเบเปเบเบเปเบเป desktops เปเบเปเบฎเบทเบญเบ, เบญเบดเบเปเบเบตเปเบเบฑเบเปเบเปเบฎเบทเบญเบเปเบฅเบฐเปเบเบทเบญเบเปเบฒเบ P2P.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com