ααααααααα’α
αααα»αα
ααα
αααααααααΆαα½ααα ααααααΌααααα·αααααααΆααααααααααααααα»ααααα»αααΆααααΆααααααααααααα»ααα·αααααααααααΆαα KVM αααααααΎ md RAID + LVM α
αααααα·ααΈααΉααα½ααααα αΌαα
- ααΆααααΆα md RAID 1 ααΈ NVMe SSD α
- ααΆααααα»α md RAID 6 ααΈ SATA SSD αα·αααααΆαααααααΆα
- αααααααα·αααααααααα·ααααα·ααΆα TRIM/DISCARD αα ααΎ SSD RAID 1/6 α
- ααΆααααααΎαα’αΆαα md RAID 1/6 αααα’αΆα α αΆααααααΎαααΆααα ααΎαααα»αααΌαα ααααΆαα
- ααΆαααα‘αΎααααααααααα ααΎ NVMe RAID 1 αα αααααααα·αααΆαααΆαααΆαααα NVMe αα αααα»α BIOS α
- ααΆαααααΎααααΆααααααΆαααααααΆαα LVM αα·α LVM ααααΎαα
- ααΆαααααΎααααΆααααΌααα BTRFS αα·αααααΎ / ααα½ααααααΆααααΆαααααα»ααα»αα
- ααΆαααααΎααααΆααααΌαααααααΎα LVM αα·α thin_delta αααααΆααααΆαααααα»ααα»ααα ααΆααααα BTRFS α
ααααα·αααΎα’αααα
αΆααα’αΆααααααααΌαααΎαααααΆα
ααα ααααΈαααααααΆααα
α’αααβαα·ααααβαα·αβααα½αβαα»αβααααΌαβααΆβαα½αβα ααααβααβαα·ααΆαβααβααΆαβααααΎ α¬βαα·αβααααΎβαααααΆα/α§ααΆα ααα/ααΌα/ααααααΆαβαααα½α/αα·ααααααβααΈβα’αααααβαααβααα ααΆααααααΆαα’αΆα α¬ααααΎααααΆαααααααΆαααααααΆααααααααΆαααΆαα½α α’αααααα½ααα»αααααΌαα ααααααααααααΆααα’αααααααααααΆαααΆαααααα αααα·ααΆααααα’αΆα ααΎαααΆααα½αααΆαα
- NVMe SSDs α ααααααα
- ααΆαααααΎααΆαααααα»αααΌαααααΆαααααΆααααααααΆ αα·αααΆααααΆαααααααααΆα SSD α
- ααΆαααΆααααααααααααααα·ααααααααΆααα’αααα ααΎααααΆαααΆααα’αααα½αααΆααα αααΆααα ααααααααα»ααα»αα
- αααααααΉααα»αααααΌαααααΆααααα αΆα
- ααααααααΆααααααααΆ αααααααααΆα αα·ααα»αα
- αααα·ααΆαααααααααααααα·αααααΌαααΆαααΆαααΆαααΎα
ααΆαα·ααα
αααα’αΆα ααααΎααΆαααΊα
Motherboard α αΆααααΈααααΆα 2013 ααΆαα½αααΉααααααααΈα Z87 ααααααααΆαα½αααΉα Intel Core i7 / Haswell α
- α§αααααααααΎαααΆα 4 ααααΌα 8 αααααααα‘αΆα
- RAM 32 GB DDR3
- 1 x 16 α¬ 2 x 8 PCIe 3.0
- 1 x 4 + 1 x 1 PCIe 2.0
- α§αααααααααΆαα SATA 6 6 x 3 GBps
α’αΆααΆααααα SAS LSI SAS9211-8I ααΆααααα αααααααΊαα ααΆαααα IT / HBA α αααααα·ααΈαααααααααααΎαααααΎαααΆα RAID ααααΌαααΆααααα½ααααα ααααΆααΆαα½ααααααα·ααΈαααααα HBA ααΎααααΈα
- α’αααα’αΆα αααα’αΆααΆααααααααα αααα αααααΆααααΆα α αΎααααα½αααΆαααα§ααααααααααααααααα’αααααΆαααααααΆααα
- TRIM/Discard ααααΎαααΆαααΆααααααΆαα ααΎααΆα ααααα... αα αααα»ααααααα·ααΈαααααα RAID ααΆααααααααΆααΆααααααα·αααααΌαααΆαααΆααααααΆααααααα α αΎα HBA ααΆααΌαα αα·ααααααααΈα’αααΈαααααΆααααααααΆααααΌαααΆααααααΌααα ααΎα‘αΆααααα»ααααααα
ααΆαααΉα - 8 ααααααα HGST Travelstar 7K1000 αααααΆααααααααΆα 1 TB αααα»ααααααα 2.5 ααΌα ααΆαααααΆαααα»αααααΌααααα½αααα ααααΆαααΆαααααααΈαα»ααα αααα»αα’αΆαα RAID 6 α αα½αααααααΉαααΆαααΆαααααΎααααΆαααα αααα»αααααααααααααΈαααααα ααΎααααΈαααααΆαα»αααΆαααααα»ααα»αααΌαααααΆαα
ααααααα
6 ααααα SATA SSD αααΌααα Samsung 860 QVO 2TB α SSDs ααΆααααααααααΌαα±ααααΆαααα ααα ααααααΆαααααααΆαααααααΆαα SLC ααΆαααΏααΆαα αα·ααααααααΆαααααΌαααΆαααα ααααΆαα ααΆαααΆαααααααααΆααααΆααααααα/ααΌαααααααΌαααΆαααΆαααΆα αααααααΌαααΆααα·αα·αααααααααααΆαααααα»α dmesgα
kernel: ata1.00: Enabling discard_zeroes_data
2 ααααααα NVMe SSD αααΌααα Samsung SSD 970 EVO 500GB α
αααααΆαα SSDs ααΆααααα ααααΏαα’αΆα/αααααα ααααα αα·ααααααααΆαααααΆααααααΆαααααααΌαααΆαααααα’αααααΊααααΆααα αα·αααα»ααααααααααΆαααα½αααα α αΆαααΆα αα ααΆα αααΆαα ααΎαα·αααΌα αααααα α ααααΆαα αΌααααααααα ααα‘α»ααααααααΎααααΆααααα RAID ααααΌαα
α’αΆααΆααααα StarTech PEX8M2E2 αααααΆαα 2 x NVMe SSD αααααΆαααα‘αΎααα αααα»ααααα PCIe 3.0 8x α ααααααααααααααΆααααααΆ HBA ααα»αααααααααΆαα NVMe α ααΆαα»αααααΆααΈα’αΆααΆααααααααααΆαααααααααααααΆαα·ααααααΌαα±ααααΆαααΆαααΆαααα PCIe bifurcation ααΈ motherboard αααααΆαααααααααΆααααα»αααΆαα PCIe αααααααΆααααααΆαα½αα ααΆααΉαααααΎαααΆαααΌααααΈαααα αααα»ααααααααααα»ααΆααααα»αααΆαα½α PCIe αααααΈααΆααΆααΆαααα x1 PCIe 1.0 αααααα ααΆαααααααΆαα·αααα»αααααΏαααααααα αα·αααΆα RAIDs αα ααΈαααααα αα·αααΆα BIOS αααααΆαααααΆαααα ααΎααααα ααααα ααΌα αααα ααααααααααααα’αααααΉααα·αα’αΆα αααα αΆααααααΎαααΆαα½α NVMe ααΆααα αα·αααΌαααααΎ NVMe RAID α’ααα»αα ααααα§ααααααααα
αααΆαααΆαα»αααααΊαααααΆαααααααααΆααααα 8x PCIe 3.0 α₯ααα·ααααααααα½αααααα αααα»ααααααααα α αΎαααααα·αααΎααΆααααααααα₯ααα·αααααα ααα½α 2 ααα ααΆα’αΆα ααααΌαααΆααααα½ααααααΆααααα½αααΆαα½α PEX4M2E1 α¬ analogues ααΈαααΆαααααα’αΆα αα·αααΆααααααααΈαααααααααα»αααααα 600 rubles α
ααΆαααα·αααααααααααααααα Hardware α¬ Chipset/BIOS RAIDs αααααααΆααααααΆαα½αααααΌαααΆαααααΎα‘αΎααααα ααααΆ ααΎααααΈα’αΆα αααα½αααααααααααΆααααΌαααΆαααααα»α ααΎαααααα SSD/HDD αααα½αα―α ααααααααααααααΆαα·ααααααααΆααα’ααα ααΆαα§ααααααα· ααΌα ααααα’αααα’αΆα αααααΆαα»αααΌααααΈααααααααααααααα·ααααα·ααΆααααααΆαααα‘αΎααα αααααααΆααααΈαα αααααααΉαααααΈααΆαααααα»α/αα»αααααΆα ααΏαα αααααΊααΆααΆαα ααα SATA αα·α PCIe α ααΆααΌα ααΆαααΈααΈααααααααΆαα α¬ααααΆααααααααΊαααα’αΆα α αΆααααααΎαααΆα ααΆαααααΏα αα·αααααΈααααααααααα·α α
ααΆααααααΎα ααΎαα·αααΌα αααααα α’αααααΉαααΆααΆαα’αααΈααΎαα‘αΎα - αααααααα’αααααααΌαααΆααααααΆααααΎααααΈααα’αΆααααΆααααΌαααΆαα½αα’αααααΎααααΈαααα ααααΆαα ααα»αααααααα»ααα·αα ααααΆααααααα·ααααααααα ααΎααααΈααααΎααΌα αααα ααααααααααααααααααΆααααααΆααααααΆααααΆααα’ααααΆαααΈααΆαααααΆαααΆααααα½ααα ααΎααααΆααααα»α 5.25 bays ααααααΈαααααααΆαα
ααΆααΆααααααΎαααΆαα α αΎαααΆααΆααα·αααΆαα αααααΆααααΆααα·αααααααΆαα½ααα·ααΈααΆααααααααααααααΆααααααΆαααααααΆαα SSD αα αααα»αααΈαα»α α
ααΆαααΆαααααααααααααΉαααΊαα½αα±αααα»αα ααΎαβααΆα ααΆααααΎαααΆαα¬αα·αααααΎαααΆαα α αΎαααΆαα½α mdadm αααααααΆααααααΎαα
ααΌα ααααα
ααΈαα»α Debian 8 Jessie ααααΌαααΆαααα‘αΎααα ααΎ Hardware ααααα αα·α EOLα RAID 6 ααααΌαααΆααααα»αααΈ HDDs αααααΆααααααΆααααΆαααΎ ααααΌααααααΆαα½α LVM α ααΆααααΎαααΆααααΆαααΈααα·αααα·ααααα»α kvm/libvirtα
αααααΆααα α’ααααα·ααααααΆααααα·ααααααααααααααα»αααΆααααααΎαααααΆααααααααΊ SATA/NVMe αααα’αΆα α αΆααααααΎαααΆα α αΎαααΎααααΈαα»αα±ααααΌα ααααΌ apt ααααααΆ α’ααΌααα»αααΌ 18.04 ααααΌαααΆαααααΎαααΎαααΆααααααααααααα αααααΆααααααααΆααααααααααΆαααα½α α αΎα ααα»αααααα ααααΆααααααα 3 ααααΆαα ααΆαααΆααααααΆαααα’ααΆααα
αααααααααααααΆααααααΆααααΆααααααα·ααΈαααααΆαααααααΉαααΆααα’αααααααΎαααααΌαααΆαα ααααΈαααα’ααα ααΎααα·αααααΌαααΆααααααα·ααΈααΆααΈααΈααΈ α¬αααααα·ααΈαααααΆααα
αααα»ααααα αααα‘αΎα
ααΎααααΈααα‘αΎααααααααα ααΎαααααΌαααΆα Ubuntu Desktop Image α αααααααααααΆαααΈαααααΆααααααα·ααΈααα‘αΎαααααααΆααααααΆαα½αα ααα½αααααααα αΆαααΈααΆαα―αααΆαααα α½αα ααα»ααααα·αα’αΆα αα·αααΆααααααΆααα»αααΆαααΆααααααααα UEFI αα ααΎααΆααα½ααααααααΎα±ααααΌα αααααααΆαααΆααα’ααα ααΌα ααααα αΎαααΆααααΌαααΆαααα‘αΎααααα αααα»ααααα UEFI ααα»αααααα αα·αααααααααααΎαααΆαα½αα‘αΎαα
ααΎααα·ααααααΆαα α·αααααΉαααΏααααααα
α ααα»α’αααΈ?ααΆα’αα»αα UEFI boot ααΊααΆαααΆαααααααΆαααΆαααααΆαααΆαα½αααΉααααααα·ααΈ RAID boot ααααα... ααααΆαααααΆααααΆαααααααα±ααααΎαααΌαααΆαααααα»ααααααΆααααΆαααΆα UEFI ESP ααα ααΆαααΌαααααααΎαααααΆααααααααΎα±ααααΆααααΆαααΆα ESP αα ααΎ flash drive αα αααα»ααααα USB ααα»αααααααααΊααΆα ααα»α αααΆαααα ααΆαααΌαααααααααΎααααΆαααααααα·ααΈ mdadm RAID 1 ααΆαα½αααΉααα·ααααααααααΆαααα 0.9 ααααα·αααΆααΆαα UEFI BIOS ααΈααΆαααΎαααΎαααΆαααΆαααα ααα»ααααααΆααααα αα αΌαααααααααΈαααΆααα αααααα BIOS α¬ααααααααααααα·ααααα·ααΆααααααααΉααααααααααααααα’αααΈαα½ααα ESP α αΎαααααα ααααΎααααΆαααααααΆαα αααααααα αααα ααα
ααΎαααΈαααααα UEFI boot α’αΆαααααααΎ NVRAM αααααΉααα·αααααΆααααΈααΆαα½αααΈααα ααααααααααααΈααααααα ααΊααΆααααααα½ααα motherboard α
ααΌα αααα ααΎαααΉααα·ααααααΎααααααααΈα‘αΎααα·αααα ααΎαβααΆαβαααβααααβααΈααΆβαααβαααααβαα½α βααΆβααααα βα αΎαβαααβααΆαβααΆαααααβαααβααα αααβα₯α‘αΌαβααβα α ααΆ Legacy/BIOS boot αααβααΆαβαααααβααααααΆαβαα CSM αα βααΎβααααααααβαααβααααΌαβααααΆβααΉα UEFIα ααΎαααααΆααααααααΆα ααααΈααααΎ ααα’α·αααΆ ααΌαααααααα α αΎαααΌαααΆααααααααΆααααΎαα
αααααααααα»αααα Ubuntu αααα·αα’αΆα ααα‘αΎαααΆαααααΉαααααΌαααΆαα½ααααααα·ααΈ Legacy bootloader ααα ααα»αααααα ααΈααα ααΌα ααααα½ααααα·ααΆα αααΆαα αα ααΆααααΆααααααΎαα
ααΌα ααααα αΎα ααΎααααααΌα hardware αα·ααααα»αααααααααααΈ Ubuntu Live flash drive αααα’αΆα α αΆααααααΎαααΆαα ααΎαααΉαααααΌαααΆααααααα αα ααΌα ααααααΎαααΉααααα ααααααΆααααααααΎαααΆααααααΆααα’αααα ααααα·αααΎααΆαα·αααααΎαααΆααα α’αααα’αΆα αααα»ααααα ααα αΆαααΆα ααα flash drive ααΆαα»αα
ααΎαα αΌααα αααα»αααα·ααααΆα Desktop ααΎαααααΎαααΆααααααα·ααΈααααΆααααΆαααααΆααΈα α αΎααα·αααΎααα α
#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 α ααΎαααΈααααααα’ααααα·ααααα αΌαα α·αααααααΎ FS ααααααααΆαα / (root) ααααα»αααααα α αααΆαααΆαααααΆαααααααα·ααΈααααααααα’αααα’αΆα αααααΎαααΆαααΆαααΆα ααααα‘αααα ααΎ LVM α αΎαααααααΆαα αααα»αααα αΆαααΆα αα
ααΎαααΉααα·ααααααΆαα»αααΌαααΆαααΆαα½ααααααΆαααΈααα·αααα·α α¬ααΌαααααΆααα·αααααααα
ααΎ FS αααααα
FS αααααΉαααααΌαααΆαααααΎααΎααααΈαααααΎαααΌαααααααααααααααααα·ααα·αααΆ α αΎααααααΆαααααααααααΌαααααΆααααααα
ααΆαααααα»ααα»ααααααααΎααΆαααααΎ/ααα½αα
ααΎαααΈααα α’ααααα·ααααααΆααΌαα α αΌαα α·ααααααααΆα’ααααααΆαααααααα·ααΈαααααααΆαααα ααΎαααααααΉα α αΎαααααΎαααΆααααααα·ααΈααααααααααΆααα’αααα αααα»ααααΆαααΈααα·αααα·ααααααααΎααααΆααα’αααΈαααΌα ααΆαααααΌααααα GPUs αα·α PCI-USB Host controllers αα KVM ααΆαααα IOMMU α
α’αααΈβαααβαα βααααααβααβαα½αβαααβαα βααΎ hardware ααΊβααΆαβαααα»αβαα·αααααα ααΆαβαα·αααα·α αα·αβααΆαβααααα»αβαα»αα
ααααα·αααΎα’ααααα»αα α·ααα ZFS α αααΎαααΆαααα ααΆαααααΆααααααααΆαααααααα·ααΈαααααΆααααααΆαα αα½αααα’αΆα ααααΆααααααΌαααΆαα
αααααΆαααΆαααΆααααα α’ααααα·αααααα·αα’αΎααΎαααα ααααΆα αααααα»αααΆααααα»α / RAID αααααααΆααααααΆαα½α αα·ααααααααα·αααααααααααααΌαααΆαααααΆααα ZFS, BRTFS αα·α LVM ααΆαα
ααΆα’αααα’αααΆααααααα BTRFS ααΆααααααααΆαααααααααΆααααααα ααααααα ααΆαααααααααΆααααααΆ αααααΆαα₯αααα·αααα·αααααΆααααΆαααααΆαααα ααΎααααΏαααααΆαααααΎααααΆαααααααααΌααα / ααΆαααααα»ααα»ααα ααΎ HDD α
ααααααααα§αααααααΆααα’ααα‘αΎααα·αα
#udevadm control --reload-rules && udevadm trigger
αααααΎααα»ααα·αα
#lsscsi && nvme list
[0:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sda
[1:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdb
[2:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdc
[3:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdd
[4:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sde
[5:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdf
[6:0:0:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdg
[6:0:1:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdh
[6:0:2:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdi
[6:0:3:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdj
[6:0:4:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdk
[6:0:5:0] disk ATA HGST HTS721010A9 A3B0 /dev/sdl
[6:0:6:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdm
[6:0:7:0] disk ATA HGST HTS721010A9 A3J0 /dev/sdn
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S466NXXXXXXX15L Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7
/dev/nvme1n1 S5H7NXXXXXXX48N Samsung SSD 970 EVO 500GB 1 0,00 GB / 500,11 GB 512 B + 0 B 2B2QEXE7
αααααααΈα
α’α·αα’ααα’ααα’αα
ααα»ααααβααΎαβααΉαβαα·αβαααααΆααβαα½αααβααΆαβαα·ααΈβααΆβαα½αβα‘αΎαα ααΌα ααααΆααΆααα’αα BIOS ααααααΎααα·αααΎαααααΆαααΆαααααααα ααΌα αααα αα½αααααΉαα αΌααα RAID αααααα·ααΈααΆαααααα»αα ααΎαααΉααα·ααααααΎαααααααα ααΈαααααα ααααα·αααΎα’αααα ααααααΎααΆα "canon" α¬ "α αααα" αααααΎαααΆααααα½αααΌα ααΆ 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 αααααΆααααααΌαα ααΏαα αααααΊααΆααΆαααΆαα αΆααααααΎααα·αααΆαααΆα bios_grub αα ααΎααΆαααΆααααααα½ααααα ααΎαααααΌαα ααΆαααααΆααα’αα»ααααΆαα±ααα’αααα αΆααααααΎαααΈααααΆα GPT Legacy/BIOS αααααα
ααα»ααααααααα·ααααααΆααααΈααααααΎαααα
αα ααΈαααααΎαααΉααααααΎααααααααΈαα ααΈαα½αααΉαααΆαααα α 1 GB α αΎαααααΎαααααΆαα RAID 1/bootα
ααΈααΈαβααΉαβααααΌαβααΆαβααααΎβαααααΆαα RAID 6 α αΎαβααΉαβααβααα αβαααααβαααβαα βαααβααΆααα’ααβααΎαβαααβααβαααααΆααβαααααβαααβαα·αβααΆαβαααα ααβααΌα βαα βααΆαβα α»αβααβααααΆαα
ααΎβαααααβαααβαα·αβααΆαβαααααΆααβαααβααΆβα’αααΈ?αααααΆαααααααα ααΎαααααΆα SATA SSDs ααααααΎαααΆααα ααΎααααΆαααααααΆαα SLC αααα’αΆα αααααΈαααΆααααΆαααααΆα αΆαααααααΆαααα αα αΆααααΈ 6 αα 78 ααΈα αααΆααα ααΎαααα½αααΆα 6 ααΈα αααΆαα "αααα₯ααα·ααααα" αααααΆαααααΆααα»αααααΆαααΆα "ααΈα αααΆαα" αα·α "ααΈαααΈαα" αα αααα»ααααααΉααα·ααααααααααααΆαα 72 ααΈα αααΆααααααα αααααααΌαααΆααααα ααααΈααα αααααα·αααααΎα
αα ααΈαααααΆαα½αααααααΌαααΆαααααααααΆααααΆααΎαααΆαααααΆαααααααΆαα SLC α αΎαα αααααααααΌαααΆαααΆααααΆαααααα»ααααα MLC 4 αααΈαα ααααααααΆααααΎαααΆαααααα·αααααΆαααΆααααααΆαααααΆααααΆααααα αααααα 4 ααΈα αααΆαα ααΎαααΉαααα½αααΆαααααΆαααααααΆαα SLC ααααΉααα 1 ααΈα αααΆααααα»αααααα
αα»α 72 ααΈα αααΆααααα 4 αα·αααα½αααΆα 288 ααΈα αααΆααα αααααΊααΆααα αααααααααααΎαααΉααα·ααααααΆααααΎααααΈα’αα»ααααΆαα±ααααααΆαααααΎααααΆααααααααααααααΆαααααααΆαα SLC α
ααΌα αααα ααΎαααΉαααα½αααΆαααΌαααααΆαααααααΆαα SLC αα αΌαααα 312 ααΈα αααΆαααααΆαααΆαααααα·αααααΆα ααΈααααΆαααα»αα ααα½αααααΆααα½αα αααα»αα ααααααααΆαααΆααα’αα 2 ααΉαααααΌαααΆαααααΎαα αααα»α RAID αααααΆααααΆααααααααΌαααΆαααα αααα
α ααα½αααααααΆαααααααΆαααααααΉαα’αα»ααααΆαα±ααααΎαααααααΆαααα αααα»αααΈαα·ααα·ααα½ααααααααααΆαααΆααααααΆαααααααα·αα αΌααα ααΆααααααΆαααααααΆααα αααααααααααααααΆαααα’αααααΆαααα»ααα·ααααα·ααααααααααααααα»αααα’αααα αα αΆα QLC - ααααΏααααααααΆααααα»ααα αααααααα·ααααααααααΌαααΆααααααααααααααΆαααααααΆααα ααααα·αααΎααΆααααα»αααααα’ααααα·αααααΌαααααΆααΉααααα αΆααααα αααα»αααΌαααααΆαα±ααα’ααααα·αα±ααα αααΆααααΆααΎ SSD ααααα’αααααΉαααΆαααααααααα»ααααΆααα αααααααααα»ααααααα ααααα·αααΌαααΈ TBW ααΈαααααΉααα·ααααααα
#cat >ssd.part << EOF
label: dos
label-id: 0x00000000
device: /dev/sda
unit: sectors
/dev/sda1 : start= 2048, size= 2097152, type=fd, bootable
/dev/sda2 : start= 2099200, size= 3300950016, type=fd
EOF
#sfdisk /dev/sda < ssd.part
#sfdisk /dev/sdb < ssd.part
#sfdisk /dev/sdc < ssd.part
#sfdisk /dev/sdd < ssd.part
#sfdisk /dev/sde < ssd.part
#sfdisk /dev/sdf < ssd.part
ααΆααααααΎαα’αΆαα
ααααΌαααΎαααααΌαααααΌαααααααααΆαααΈαα αααααΊα αΆαααΆα αααΈαααααααααααααΆαααΈαααΊααΆααααααα½ααααααααα’αΆαααα ααααααααΆαα½ααα ααΆααααα»α mdadm α αΎααααααΆαααααα’αααΈαα½ααα ααααααααΆαα½αα ααΆααΆααα·αααΆαα α’αΆααα’αΆα ααααΌαααΆαααααΌαααααααα αααααααα ααα»αααααααααΊααΆααα αΆααα·αα αΆαααΆα αα
#mcedit /etc/hostname
#mcedit /etc/hosts
#hostname
vdesk0
α’α·αα’ααα’ααα’αα
#mdadm --create --verbose --assume-clean /dev/md0 --level=1 --raid-devices=2 /dev/nvme[0-1]n1
α ααα»α’αααΈ-ααααααααΆααα’αΆα...?ααΎααααΈαααααΆαααΆαα αΆααααααΎαα’αΆααα αααααΆααααααα·α RAID ααΆαα 1 αα·α 6 αααααΊααααΉαααααΌαα α’αααΈααααααααΆαα’αΆα ααααΎαααΆααααααααΆαααΆαα αΆααααααΎαααααα·αααΎααΆααΆα’αΆααααααΈα ααΎαααΈααααα ααα ααΆαα αΆααααααΎαα’αΆαα SSD αα ααααααααΎαααΊααΆααΆαααααααααΆαααααΆα TBW α ααΎαααααΎ TRIM/DISCARD αααααΆαααααααααα’αΆα ααααΎαα ααΆααα ααΎα’αΆαα SSD αααααΆααα½αααααα»αααααΆααΎααααΈ "α αΆααααααΎα" αα½αααΆα
αααααΆααα’αΆαα SSD, RAID 1 DISCARD ααααΌαααΆαααΆααααα ααααΈαααα’ααα
αααααΆααα’αΆαα SSD RAID 6 DISCARD α’αααααααΌαααααΎαααΆαα αααα»ααααΆαααΆαααααααααΌαα»αααΊαααα
ααααα½αααααααΌαααΆαααααΎαα»αααααΆαα SSDs ααΆααα’αααααααααΎαααα»αααααα·α 4/5/6 α’αΆαααα αααα»ααααααααααααααΆαααΆαααΆααααααααΎαααΆααααααΆαα discard_zeroes_dataα αααααααα’ααααα½ααααααααΉαααααΆαα ααααααααααααΆααααΊαααααΆαα»αααΆααααααααΌαααΆαααΆαααα ααα»ααααααΆααα·αααΆαα·ααα ααΈααααα α¬αα»αααΆααα·αααααΎαααΆαααΆαα·α αα α αα αααααα ααΆαααΆααααααΆαααααΎααααααααααΈαααααα αααααΈααΆαααΆαααΆααααα ααΆαααααΆαααα αΆαα αα·ααααααα·ααΈαααααααααααΆαααα α»αα αααααΆααα ααα»ααααα ααΆαααΆαααα DISCARD ααααΌαααΆααα·αααΆαααααΆαααΎααααααΆαα RAID 6 α
ααα α·ααααα»αααΆαα ααΆααααααααΆααΆααααααααΉαααααααΆααα·ααααααααΆααα’αααα ααΎααααΆα NVMe ααα "α αΆααααααΎα" α’αΆααααΆαα½α "ααΌααα" α
#blkdiscard /dev/md0
ααααα·αααΎααΆαα’αααΈαα½ααα»α ααΌαααααΆααΆααααααΆααααα αΆααα½αα
#blkdiscard --step 65536 /dev/md0
SATA SSD
#mdadm --create --verbose --assume-clean /dev/md1 --level=1 --raid-devices=6 /dev/sd[a-f]1
#blkdiscard /dev/md1
#mdadm --create --verbose --assume-clean /dev/md2 --chunk-size=512 --level=6 --raid-devices=6 /dev/sd[a-f]2
α ααα»α’αααΈααααααα...?ααΆααααααΎαααα αααααΆααααΆαα₯αααα·αααα·αααααΆααα ααΎααααΏαααααΆαα’αΆαα ααααααα αααα»ααααα»ααα αΌααααααα αααααΆααα ααΆααΎαα‘αΎααααααΆαααααααα·ααααα·ααΆααα½αααααα ααααααα α¬ααΌα ααΆααααα’αΆα ααααΌαααΆααααα ααααΆαααααα»ααα ααΎα§ααααααααα½αα ααΌα αααα IOPS ααΈα§αααααααΆααα’ααααααΌαααΆαααααααα αααααΆααααα·αα· 99% αα IO αα·αααΎαααΈ 512K α
RAID 6 IOPS αααα»ααα½αααααα ααααα αα·α
ααΆα α¬ααααΎααΉα IOPS ααααααΆααα½αα αα
ααααααααΆαα’αΆαα
ααααα IOPS α’αΆα
ααααΆαααααΆααα½αααα
αααΎααα α αΎααα
ααΈαααααα ααααα»αααΆαααΆααααααΆααααΆααα
α’ααααα·αααααα·αααΎαα
ααα»α
αααα»αααΆαααααΆααΆααααααΎαααααα·αααααΆααααΆαααΆααααααααααα·αααα’αα
αααα»α RAID 6 αααααΆααα
ααΆααααα α αΎααααα½ααααα·αααΌαα’αααΈααα RAID 6 ααα’αα
αααα»ααααα
ααΎαααΉαααααααααααααααΆααααΆααααααα
ααααααα·αααα’αα RAID 6 ααΆαα½αααΉαααααΆαααααααΆαα NVMe αα·ααααα·α
αααααααααΎαα
ααΎααα·αααΆααααΆαααΎα DISCARD αααααΆαα RAID 6α ααΌα ααααααΎαααΉααα·α "α αΆααααααΎα" α’αΆααααααααααΆααααααααααα ααΎαααΉαααααΎααΆαα αααααααα αααααΆααααΈααα‘αΎα OSα
α’ααα’ααα’ααααΈα’αα
#mdadm --create --verbose --assume-clean /dev/md3 --chunk-size=512 --level=6 --raid-devices=8 /dev/sd[g-n]1
LVM αα ααΎ NVMe RAID
αααααΆααααααΏα ααΎαα
ααααΆααααααααααα―αααΆα root αα
ααΎ NVMe RAID 1 αααααΆ /dev/md0 α
αααααΆαααΆαααΆααααα ααΎαααΉααα
ααααααΌαααΆαα’αΆααααααΏαααααααααΆαααααααΌαααΆαααααααααααΌα
ααΆ swap αα·ααααααααααΆ αα·α LVM-cache αα·α LVM-thin metadata ααΌα
ααααααΎαααΉααααααΎα LVM VG αα
ααΎα’αΆαααααα
#pvcreate /dev/md0
#vgcreate root /dev/md0
ααααααααΎαααΆαααΆααααααΆααααααααααα―αααΆα root α
#lvcreate -L 128G --name root root
ααααααααΎα Partition αααααΆααααααΌαααΆαααα α RAMα
#lvcreate -L 32G --name swap root
ααΆαααα‘αΎα OS
ααα»ααα ααΎαααΆαα’αααΈααααααααΆααααα αΆαααΆα ααααα»αααΆαααα‘αΎαααααααααα
ααΎαααααΎαααΆαα’ααααααα½αααΆαααα‘αΎαααααααααααΈααα·ααααΆα Ubuntu Live α ααΆαααα‘αΎαααααααΆα ααΆααααα ααααΆααααΆαααααΆαααααΎαααΎαααΆααααααΆααααα‘αΎαααα»ααααα α’αααααααΌααααααΆααααΌα ααΆααααααα
- /dev/md1, - α ααα»α αααα / boot, FS - BTRFS
- /dev/root/root (aka /dev/mapper/root-root), - α ααα»α αααα / (root), FS - BTRFS
- /dev/root/swap (aka /dev/mapper/root-swap), - ααααΎααΆααΆαααΆααααα
- ααα‘αΎααααααα·ααΈα αΆααααααΎααααααααααα ααΎ /dev/sda
αα αααα’αααααααΎαααΎα BTRFS ααΆααααααααα―αααΆα root αααααα·ααΈααα‘αΎαααΉααααααΎαααΆα BTRFS ααΈααααααααααααααααα·αααααΆααααααααΆ "@" αααααΆαα / (root) αα·α "@home" αααααΆαα /home α
αααα αΆααααααΎαααα‘αΎα...
ααΆαααα‘αΎαααΉααααα ααααααααα’αααααΌαα»αααααααα αΆαααΈααα α»ααααα»αααΆαααα‘αΎααααααα·ααΈα αΆααααααΎαααααααααα ααΆα’αα»αα α’αααααΉααα·αα’αΆα α ααααΈαααα’ααααααααααααΎαααααααΆααααααααΆα αα·αααααααΆαααα‘αΎαααΆαααα ααΎαα ααααΈαααααααα α αΎαα αΌαααααααα ααααααα ααααααααααα» Ubuntu Live ααα’αΆαα ααΎαααααΆααΈα α αΎααααααααα
#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
ααΌαβααβααααα½αβα’αΆααβααααβααΎαβααααα·α
α
#cat >/etc/udev/rules.d/60-md.rules << EOF
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="32768"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_min", ATTR{md/sync_speed_min}="48000"
SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/sync_speed_max", ATTR{md/sync_speed_max}="300000"
EOF
#cat >/etc/udev/rules.d/62-hdparm.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 254 /dev/%k"
EOF
#cat >/etc/udev/rules.d/63-blockdev.rules << EOF
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/blockdev --setra 1024 /dev/%k"
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="md*", RUN+="/sbin/blockdev --setra 0 /dev/%k"
EOF
ααβαΈβααΆβααΆβα’αααΈ..?ααΎαααΆααααααΎααααα»αααα
αααΆαα udev αααααΉαααααΎααΌα
ααΆαααααα:
- αααααααα αααααΆαααααααΆαααααα»ααααααΆαα RAID 2020 α±αααααααααααΆαααααααΆααααααΆα 6α αααααααααΆαααΎα ααΆα αΆααααΈααΌα ααΆαα·αααΆαααααΆααααααΌαα αΆααααΆααααΈααΆααααααΎαααΈαα»α α αΎαααΆαα·ααααααααααΆαααααααΆααααααααααΌαα
- αααααΆαα»αα’αααααααΆαα IO αααααΆααααααααααααΆααααα½ααα·αα·αααα’αΆαα/ααΆαααααΎααααΆαααααα αααααΊααΎααααΈααΆαααΆαα’αΆααααααα’αααααΈααΆαααΆααααΆαααα αααα»αααααΆαααΆαααααΆαααααΎααααΆαααααααα’ααααααααααααα·ααα αααααααΆααααα»αα
- ααααα IO α’αα·ααααΆααα‘α»αααααα·αα·ααα/ααααΎααααΆαααααααα’αΆααα αααααΊα αΆαααΆα αααΎααααΈα±ααααΆαααααΎααααΆααααα / αα·αα·αααααΎα SSD RAIDs αα·αααααΎα±ααααααΆαααααααα’αααααΆαααΆαααααααααα αααααΆααΆααα·αααΆαα·ααααααααΆαα NVMe α (α αα αΆαα’αααΈαα·αααα»ααααα? αααα»ααα·ααα·ααΆαααααα)
- α αΆαααΆααααΆαααΈααΆαααααααααΆαααααα·α spindle (HDD) ααΆαααα APM αα·αααααααααααααΆααααΆαααααααααΆααα§ααααααααααΆααΆαααα 7 ααααα α’αααα’αΆα αα·α APM ααΆαααααα»αααααα·αααΎααααΆαααααα’αααα’αΆα ααααΎααΆα (-B 255) α ααΆαα½αααΉααααααααααΆαααΎα ααααΆαααΉαααααααααΆααααΈααααΆααα·ααΆααΈα αααααΆαααα OS α αααααααααααΆαααααααΆααααΆαα‘αΎααα·α ααΆαααΉααα·αααααααα α αΎαα’αααΈαααΉαα αΆααααααΎααααααααα ααΈαααΆαα ααα½αα’αα·ααααΆαααααααααΆαααααα·α spindle α ααααααααΆαααΎαααΆααααααααααα’αΆα αααααΆααααΆαααααα’ααααααΆαααΆααααα½ααααα»αααααααααΈαααΈααααΆαα αα·ααααααΆαααΆααα’ααααα½αααααΈαααα αΆααααα ααα»ααααααααααΎαααΊααΆ "αα»αααααΌααααα½ααα" ααΆαα½αααΉαααΆααααααααααΆαααΎαααααααααα αααααααΎα±αα RAID ααΎααα ααΌα ααΆ mini-MAID α
- ααα‘αΎα readahead αα ααΎααΆα (ααααα·α) 1 megabyte - ααΈααααα»αααΆααααααΆ/ααααΆαα RAID 6
- αα·αααααΎαααΆα readahead αα ααΎα’αΆαααααα½αα―αα
αααααααααα½α /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 ααα UUID α αααααα’αΆααα’αΆα
ααααΆααααααΌαααΆαααααΉααααΈα
ααΎαααΉαααααααααααααααααα ααααααααααα LVM αα αααα»ααααααΆα /dev/mapper/vg-lv ααΈααααα αα½ααααααααα’ααααααααΆαααΆαααΆααααΆααα·αααα
ααΎααα·αααααΎ UUID αααααΆαα LVM ααααααα UUID ααααα·ααΆα LVM αα·αααΌααααααααα½αααα’αΆα ααΌα ααααΆααααα /dev/mapper/root-root.. ααΈααα?ααΆαα αααΆαβαα·αααααΆααα αααααααα·ααααααα BTRFS ααααααααα―αααΆααααα’αΆα ααααΌαααΆαααααααΆα αααΎαααααΆαα½αααΉα subvols αααααααααΆα
αααααΆααααααααα·αααααΌα ααααΆααα αααα»αααΌαααααΆααα»αα±αααααααΎαααΌαααΆα LVM ααααα·ααΆα BTRFS αααααα α’αααα’αΆα ααα½αααΆαααΆαααααΆααααα’αΎααα αααα’αααα αΆααααααΎαα‘αΎααα·αα
ααααααααΎα mdadm config α‘αΎααα·αα
#/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% ααααα·ααΆαα
ααΎαααΆααααααΎαα ααα½αα’αα·ααααΆαααααα»αααααΆαααααααΆαααααααΆααααααΆαααααααΆαα LVM α
ααΎαααΆαααΆααΆαα LVM ααΈααΆααααααααααα·ααΆα LVM (PV) αα ααΎα
- α§ααααααααααΆαααααΆαααααααΆαα LVM (cdata)
- α§ααααααααααΆααααααΆαα»ααααααααΎααααΆαααααααΆαα LVM αααααααααΆααααααΆαααααααΆαα ( _ααΌααΈα)α αααα»αααααΈααα α§ααααααααααΆααααααΆαα»ααααα»αααααΆαααααααΆαααααα½αα―αααΉααα ααααααΌαααΆααααααααΆααααααααΆαααααααΆαα (ααααΆαααα )
- α§ααααααααααΆααααα»ααα·ααααααααααΆααααΆαααααααΆαα LVM (cmeta)
- α§αααααααΆααα’αααα αααα»α VG αααααΆαααΌαααΆααααααα αα ααΈαααααΎαααΉαααΆαααΌαααΆαααΈααααααΆαααΈααα·αααα·α α αΎαααΎααα·αα ααα±αα LVM αα ααΎαααΆαααΈαααααΎαααΆαααα·ααΆααααααΆαααααα·αααα·αααα OS αααααααα
- α§αααααααΆααα’αααα αααα»α VG ααΆαα½αααΉαααΆαααααα»ααα»ααααααα αα ααΈαααααΎαααΉαααΆαα αααΆααα ααααααααα»ααα»αααααΌαααΆααααΆαααΈααα·αααα·αα
- α§αααααααΆααα’αααααααααααααα ααααα "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 ααΆαα½ααααα·ααααα»αααααΆαααΆαααΌα α ααΆααααΆααΆααααααααααααααααααααα·ααααα·ααΆααα ααΎααΆαααΆααααααααΌαααΆαααααΎαα αααα»ααααΆαααΈααα·αααα·αααααααα»αααααΎαααΆαααΎαααααααΉααααα
ααααα·αααΎα’αααααααΌαααΆα α’αααα’αΆα αα»αααΆα ααααΆα ααα»ααααααααΌαα αα αΆαααΆααα’ααααΆαααΎα αααα»αβααΌαβααααΆαβα±ααβααβααΎαβααΌαααααβαααααΆααβαααα αΆααβααβαα·αβααα’αΆαβααΆαβα’ααΈαααΊαα·αα
ααΆαα½ααααααΎαααΆααααα ααααΆαααα‘αΎαααααΌαα ααΆααααααα αΎαααΎααααΈα αΆααααααΎαααααααααααααα·ααααα·ααΆααααααΆαααα‘αΎαααααΈα αα»αααααα αα Live CD/USB αααα’αΆα α αΆααααααΎαααΆαα
#exit
#reboot
ααααΎαααΎα SATA SSDs ααΆαα½αααΆα§αααααα αΆααααααΎαα
LVM αα ααΎ SATA SSD
αα α ααα»α ααα ααΎαααΆαα αΆααααααΎαααααααααααααα·ααααα·ααΆαααααΈαα½α α αΎα ααααααα ααΆαααααααααααααΆα apt ααΎααααααα·ααΈααααΆααααΆαααααΆααΈα α αΎαααααΎαααΆαα
#sudo bash
ααΌαααααα
"α αΆααααααΎα" α’αΆααααΈ SATA SSDα
#blkdiscard /dev/md2
ααααα·αααΎααΆαα·αααααΎαααΆααα ααΆαααααα
#blkdiscard --step 65536 /dev/md2
αααααΎα LVM VG αα
ααΎ SATA SSDα
#pvcreate /dev/md2
#vgcreate data /dev/md2
α ααα»α’αααΈ VG αα½αααα..?ααΆααα·αααΎαααΆα VG αααααΆααααααααΆ root αα½α α αΎαα α ααα»α’αααΈαα·αααααααα’αααΈααααααααΆααα αααα»α VG αααα½α?
ααααα·αααΎααΆα PV ααΆα αααΎααα αααα»α VG αααααΆααααααΎααααΈα±αα VG ααααΎαααΆαααΆαααααΉαααααΌα PV ααΆααα’ααααααΌαααααΆαααααααΆα (α’αα‘αΆα)α ααααΈααΎααααααΊ LVM RAID αααααΎααα·αααααΎαααα ααααΆα
ααΎααα·αααΆα ααααΆαααΆααααα·αααΎααΆαααΆααααΆααα (α’αΆαααΆαααΆααααααα·αααααα) αα ααΎα’αΆαα RAID 6 ααΆαα½αααα ααααααααααααα·ααααα·ααΆαααΉαα αΆααααααΎαααΆααααααΆ α αΎααααααα±ααααΎαααΌαα±ααΆαααΎααααΈαααααααΆααααα αΆα
ααΎααααΈααααΎααΌα ααααα ααααα·αααααΌαααααΆαα’ααΌααΈ ααΎαααΉαααααααααααα "ααααααααααααααααααΆα" ααΆαααΆαααΈαα½αααα ααΆ VG ααΆα ααααα‘αααα½αα
αα·ααΆαααΆαααααα·ααααΆααΆααααα α’αΆαα RAID αααααααααΆααΆαααααα·αααα·αααα "αααααΆαααΏααΆαα" ααααααααααΆα α’ααααα·ααα½ααααααΎαα ααα»α ααααααΆααααααααααΆααααΆααααααααΆαααα½αααααααααα αΌααα½αααΆαα αααα»α VG αααα½ααααααα
ααααααΆααααα LVM αα ααααα·α "Hardware" ααΉαα’αα»ααααΆαα±ααααΎαααΆααααααααα RAID arrays ααααααααααΆααΆαα’αααΎα α·ααααααααααααΆααΆααα·ααΈααααααααααΆα α§ααΆα ααα - ααα αααα»αααααααα½αα bcache + LVM ααααΎα bcache + BTRFS ααααΆαααααααΆαα LVM + LVM ααααΎα ααΆαααααααα ααΆαααααααα ZFS αααα»αααααααΆαααΆαα½αααααΆαααααααΆαα α¬ααααΆααααααααααααααΎααααΈααΆαααααααααααααααΆααΆααα’ααα
αα ααααα·α "Hardware" ααΎαααΉααα·αααααΎα’αααΈααααααααα ααΈααα·ααΆα LVM "ααααΆαα" α αΆααααα’αααααα ααΆαααΎααααα ααααα αααΆαααααα’αΆα ααΆααΆαααΆαααααα»ααα»αα
αααα»ααα·αααΆααααααααααα α’αααα’αΆαααΆα αααΎαααΆαα αΆααααααΎαααααααα’αααΈαα½αα’αααΈαα»αααααΆαααα»αα
LVM αα ααΎ SATA HDD
#pvcreate /dev/md3
#vgcreate backup /dev/md3
VG ααααΈαααα αΎα..?ααΎααα·αααΆα ααααΆαααΆ ααααα·αααΎα’αΆααααΈααααααΎαααΉαααααΎαααααΆααααΆαααααα»ααα»ααα·αααααααααΆααα ααααααααααααα·ααααα·ααΆαααααααΎαααΉαααααααααΎαααΆαααΆααααααΆ ααααααααααααααΆααΆαα αΌαααααΎαα·ααααααααααα·αααααα»ααα»αααΌα ααααααΆα ααΌα αααα ααΎααααΈαααααΆααααα αΆααααΆαααααΎα±ααααααα VG ααΎααααααΎα VG ααΆα ααααα‘ααα
ααΆαααα‘αΎαααααΆαααααααΆαα LVM
ααααααααΎα LV αα ααΎ NVMe RAID 1 ααΎααααΈααααΎααΆααΆα§ααααααααα»ααα·ααααααα
#lvcreate -L 70871154688B --name cache root
α ααα»α’αααΈααΆαααΆααΆααα·α αααααα...?ααΆααα·αααΊααΆ NVMe SSDs ααααααΎαααααΆαααααΆαααααααΆαα SLC αααααα 4 ααΈα αααΆαααα "α₯ααα·ααααα" αα·α 18 ααΈα αααΆααααααΆααααααααααΆαααααα αααααααααααΆαααΆααααΆαααα αααα»α MLC 3 αααΈαα αα ααααααααααΆαααααααΆαααααα’ααα αΎα NVMe SSDs ααΉααα·αααΏαααΆα SATA SSD ααααααΎααααααΆαααααΆαααααααΆαααααααα ααΆααα·ααααααΆααα ααα»ααααα ααΆαα·αααα ααα»αααααααΆααααΎααααα»αααΆαααααΎα±ααααΆαααΆαααααΆαααααααΆαα LVM ααααΆαααα αααααΆαααααααΆαα SLC ααααααΆα NVMe ααΈαααα αααααΆααααααΆα NVMe αααααααΌαααΆαααααΎ α’ααααα·ααααα αΆαααα»αααΆααΆααα ααα»αααααα»αααΆααααααΎαααααΆαααααααΆαα 32-64 ααΈα αααΆααα
ααα αααΆαααΆααααααΆααααααα±ααααΊααααΌαααΆαααΆαααΆαααΎααααΈαααα α 64 ααΈα αααΆααααααααΆαααααααΆαα αα·ααααααααααΆααααΆαααααααΆαα αα·αααΆαααααα»ααα»ααα·ααααααααααΆα
ααΎαααΈαααααααααα»αααααααααΆααααΆαααααΆααααΈααΆααα·ααααααααααααααα LVM ααΉααααααΆααααααΆαααααααΆααααΆααααΌαααΆααααααα αΎαααΉαααααΎααααΆααααααααααααα ααΎαααΈααααα ααα ααΆααΉαααααΌαααΆαααααΎαααααααααΆαααααααα lvchange ααααΌαααΆαααααΎαα ααΎα§αααααααα αα αΌααααααααααααααααΌαααΆαα αΆααααααΎαα‘αΎααα·ααααααααα ααΌα αααα αααα»αβααΌαβααααΆαβα±ααβαααααΎαβααααΆααβαααααΆααβα‘αΎαβαα·αβααααΆααβαααβααααΎβααααααΈαβαααβααααααα
ααααααααΎα LV αα ααΎ SATA RAID 6 ααΎααααΈααααΎααΆααΆα§ααααααααα»ααααα»αααααΆαααααααΆααα
#lvcreate -L 3298543271936B --name cache data
α ααα»α’αααΈααΆαααααΉαααααΈαααααΆαα..?ααΌα ααααααααα·αααΎα αΆαααΆα α α’αααα’αΆα ααααΎ SATA SSD RAID 6 αααααΆαααααααΌαααΆαααααααααα ααα αααααααΆαααααααΆααα’αΆα ααααΌαααΆααααααΎααααααΆααααα ααααΆαα ααααα·αααααααααααααααα ααΎααααΈααααΎααΌα αααα α’αααααααΌαααααααααΆααααααα’αΆαααα αα·αααΎαααααΎαααΆαααααΆαααααααΆααα‘αΎααα·α ααα»ααααα’ααααααααααααα·ααααα LVM-cache ααΎαααΈα§ααΆα ααα bcache ααΊααΆααΆα’αΆα ααααΎααΆαααααΆααα
ααααααααΎα VG ααααΈαααααΆααααααΆαααααααΆααα
#pvcreate /dev/root/cache
#pvcreate /dev/data/cache
#vgcreate cache /dev/root/cache /dev/data/cache
ααααααααΎα LV αα ααΎα§ααααααααααΆααααααΆαα»αα
#lvcreate -L 3298539077632B --name cachedata cache /dev/data/cache
αα ααΈαααααααΆααααΎαααΆαααααα ααααααααΆααα’αααα ααΎ /dev/data/cache ααΌα ααααααΆαααΆαα αΆαααΆα αααααααααααΆααα’ααααααΌαααΆααααααΎαααααΆαααα ααΎ /dev/root/cache α ααααα·αααΎα’αααααΆααααααΎαα’αααΈαα½ααα»ααααααα α’αααα’αΆα ααααΆααααΈααΆαααααααΎ pvmoveα
ααααααααΎα αα·αααΎαααααΆαααααααΆααα
#lvcreate -y -L 64G -n cache cache /dev/root/cache
#lvcreate -y -L 1G -n cachemeta cache /dev/root/cache
#lvconvert -y --type cache-pool --cachemode writeback --chunksize 64k --poolmetadata cache/cachemeta cache/cache
#lvconvert -y --type cache --cachepool cache/cache cache/cachedata
α ααα»α’αΈααααΌα
αααααα..?ααΆααααααΆααα·αααααααΆααααααα α’ααααα·ααααα’αΆα
ααααΎαααΆ ααααααααα’αααα»αααααΌαααΆααααααα
ααααα·αααΎααα ααααααα»αααααΆαααααααΆαα LVM ααααααααΆααΉαααα ααααααα»αααααΎα LVM α ααΎαααΈααααα
ααα ααα αααΌα
ααΆα ααΆαααααααα
ααΆααααααααααααΎαααΆαααΆαααααααααΎαα‘αΎααααα»αααΆααααααα
αααααα
64k ααΊααΆααα ααααα»αα’αααααααΆαααα’αα»ααααΆααααααΆαα LVM ααααΎαα
ααααααααααααΆαααααα..!ααΆαα ααααααααααααΆαααααααΆααααααααααΆααααααααααΆαααααΎααααΆααααααα α§ααααααααααΆααααααΆαα»αα αααααΆααααααΆααααα·αααΎααααΆαααααααΆααααααΌαααΆαααΆααααα α’αααα’αΆα ααΆααααααα·αααααααα ααΎα§ααααααααααΆαααα»αα ααααααα α’ααααα·ααααααΉαααααΆααα’αααααΈαα·ααΆαααΆαα’αααΈααααααααΈααΎ NVMe RAID 1 αααα’αΆα ααααΌαααΆααααααα ααΌααΆαααααααααΆααα αΆαα·ααααααα
ααααααααααΆαααααααΆαααααααααΌαααΆαααααΎαααΎααααα ααααΆααΎααααΈααΌααΆαααααααααΆααααΆααααααα ααααααα·αααα’αα RAID 6 α
ααααα·αα·αααααΎαα’αααΈαααααΎαααα½αααΆαα
#lvs -a -o lv_name,lv_size,devices --units B cache
LV LSize Devices
[cache] 68719476736B cache_cdata(0)
[cache_cdata] 68719476736B /dev/root/cache(0)
[cache_cmeta] 1073741824B /dev/root/cache(16384)
cachedata 3298539077632B cachedata_corig(0)
[cachedata_corig] 3298539077632B /dev/data/cache(0)
[lvol0_pmspare] 1073741824B /dev/root/cache(16640)
ααΆααα [cachedata_corig] ααα»αααααααααα½αααααΆαααΈααΆαααα
/dev/data/cache α ααααα·αααΎααΆαα’αααΈαα½ααα»α ααΌαααααΎ pvmoveα
α’αααα’αΆα αα·αααααΆαααααααΆααααααα·αααΎα αΆαααΆα ααααααααΎααΆααααααααΆαα½αα
#lvconvert -y --uncache cache/cachedata
αααααααΌαααΆαααααΎαα ααΎα’ααΈαααΊαα·αα LVM ααΉαααααΎααααΆαααααααααΆαααααααΆαααα ααΆα αα»αααΆα αα α αΎαααααΌαααααα cachedata_corig αααα‘αααα ααααΆαααααααΆαααα·αα
ααΆαααα‘αΎα LVM ααααΎα
α αΌααααΆαααααααΆαααΆααΎααΎαααααΌαααΆαααα αααα»αααΆαααααΆαααα·ααααααααααΆααααΎα LVMα
#thin_metadata_size --block-size=64k --pool-size=6terabytes --max-thins=100000 -u bytes
thin_metadata_size - 3385794560 bytes estimated metadata area size for "--block-size=64kibibytes --pool-size=6terabytes --max-thins=100000"
αααααααα αΌαααα 4 ααΈα αααΆαα: 4294967296B
αα»αααΉαααΈα α αΎααααααα 4194304B αααααΆαααα·ααααααααααΆ LVM PV: 8594128896B
ααααααααΎαααΆαααΆαααΆα
ααααα‘αααα
ααΎ NVMe RAID 1 ααΎααααΈααΆαααα·ααααααααααΆααααΎα LVM αα·αα
αααΆααα
ααααααααα»ααα»ααααααα½ααααα
ααΎααΆα
#lvcreate -L 8594128896B --name images root
ααΎααααΈα’αααΈ..?αα ααΈααααααα½αα’αΆα ααΎαα‘αΎα: α ααα»α’αααΈααΆαααΆααΆαααα·ααααααααααΆααααΎα LVM αααα‘ααααΈααααΆααααα·αααΎααΆααΉααα ααααααΌαααΆααααααΆαα»ααα ααΎ NVMe α αΎαααΉαααααΎαααΆααααΆαααΆαααα ααα
αααααΈααΆααααΏαααΆαααΆααααααΆαααα ααΈαααααααα ααΆααΊαα ααααΆαααΈα ααα»ααα ααααα ααΏαααΊααΆααααΆαααααααΆααααΊααΆα ααα»α ααααΆααααΆαααα α’αααΈαα½αα’αΆα ααΎαα‘αΎαα ααααααΆ α αΎαααααα·αααΎαα·ααααααααααΆααααΎα LVM ααααΌαααΆααα»ααααα»αααααΆαααααααΆαα ααΆααΉαααααΎα±ααα’αααΈαααΆααα’ααααααΌαααΆαααααααΆαααααα»αα ααΎααααΆααα·ααααααααααΆαααααααα ααΆααΉαααααΎααααα·αα’αΆα αα αα½α αααααα»αααΆααααααΌααααα»αααα·ααΆαααααΎαα
ααΆααααααΆαααααΆααααααΌααα·ααααααααααΆαα ααΆαααααααΆα ααααα‘ααααααα·αααΆαααααΆαααααααΆαα ααα»ααααααΆαααααα·αααα‘ααααΏα ααΎαααΆααΆαα»ααααα·ααΆααααα·ααααααααααΆαααα»αααααΈααΆαααααααααΆαααααααΆαα α¬α’αααΎαα»αααα½αα αααα»αααααΈααα ααΆαααΌα ααΆαααΆααα’ααααααααααΆαααααΈααΆαααΆαααααααααΆαααααααΆααααΉαααααΌαααΆαααααΎααΌαααααΆααΈααααααα αααα»αααα·ααΆαααααΎα αααααΉαααααΎα±ααααΈαα·αα·ααΈααααΆαααααΆαα‘αΎααα·αααΆαααΆαααΆααααααΆαααααΆαααααααα ααΆαα½αααΉαααααΌααΆαααΈααΈααααααα ααΆαααΌα ααΆαααΆαααααααΉαααααΌαααΆαααααΆαα‘αΎααα·ααααααααΎαααααα ααα» FS α
ααΎαααΈααααα ααα ααααα·αααΎααΌαααααααααα·αααα‘ααααααΎααα½αααααΌαααΆαααααΈαα»α α αΎααααααΆααααΈαααααααΆαααααααΆααααααΌαααΆαααααΎααααΆααααααααΆααααααααααΆαα αα ααΆαααααα ααααααααΆαααααΆααα ααΆααΆααααα»ααα LVM ααααΎα ααΆααα»α αα·αααααΌαααααΉαααααΌαααΆαααΆααΆαααα»αααααΈααΆαααααααααΆαααααααΆααα .
ααααααααΎα VG ααααΈαααααΉαααα½ααα»αααααΌαααΎααΆααααααααααΎαα
#pvcreate /dev/root/images
#pvcreate /dev/cache/cachedata
#vgcreate images /dev/root/images /dev/cache/cachedata
ααααααααΎαα’αΆαααΉαα
#lvcreate -L 274877906944B --poolmetadataspare y --poolmetadatasize 4294967296B --chunksize 64k -Z y -T images/thin-pool
α ααα»α’αααΈ -Z yααααααααΈααΎα’αααΈααααααααααααΊαα·αααΆααΆααααααααααΆαα - ααΎααααΈααΆαααΆααα·ααααααααΈαααΆαααΈααα·αααα·ααα½αααΈααΆαααα
ααααΆααα
αααΆαααΈααα·αααα·ααα½ααααααααααα
αααα
ααα
αΆαα
αααααα‘αΎααα·α - ααΌαααααααΌαααΆαααααΎααααααααΎααααΈαααααΎαααααΏαααααΆααααααα
ααααααα
αααα»ααααα»αααΌα
ααΆα 64k α ααΆααααΆαααααααα·α
ααΆα 64k αα
αααααααααα·αααΆααααα
ααααΈαα»αααααα·ααΆαααααΎαααΉαααααΆααα
ααΆ 64K edge-aligned αα
αααα»αααααΆαααααααΆααα ααΆβααΉαβα’αα»ααααΆαβα±ααβααααα·ααααα·βααΆαβααΆααβαααα»αβααΆαβαααβααααΆααβαααααΆαα αααβααααβα§αααααβαααα»αβααααΆααβαααααΆααα
αααααααΆααααΈ 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 ααΈα αααΆαααααα»ααα½ααα·ααΆααΈα ααΌα
αααα ααΆααααΆαααααΎααααααααααα’αΆα
αααΈααααΆα SSD ααααα
216 ααΈα αααΆααααΈα’αααα
ααΆαα’αΆα αα·αααΆααααααααΆαα‘αααααΆ?ααΆαα ααΆααα ααα»αααααα»αααΆαααααΎαααΆααααααα’αΆα αα·αααααααααα‘ααααΈααααΆα ααΎαααΈααααα ααα ααΆααα ααα»αααααα»αααΆαααΆααΆααΆααααΆαααααααΆααααΆααα’ααααααΌαααΆαααααΎααααΆααααα ααΌα ααααααΆαααααααααααΆαααααΎααΈαα»ααα·ααααααΆαααααααΆαα’αΆααααααα
ααααααααΉααααααααα½ααααΆαααααΆαααααα»αα’αα‘α»ααααααΎαααααΎαααΆαααααΌα αα·αααΆαααααααααΆαα αα ααααααααααΆαααααααΆαα αα·αααα·ααΆαααααΎααααααα‘αΎα α αΎαααα’αΆααααααα ααΎααΆααΎαααααααααααααααααααΎααααΈααααΎααααΆαααααααααΆαααααααΆαααααααΆαααααααααα»αα’αα‘α»ααααααααΆαααΎαααααΎαααΆαα α»ααααααα
αααα»αα αααααααααααααααα αααα»αααΌαααααΆαα±ααααΆααααααΏααα ααΎααααα·αααα‘ααααααΎααααααααααααΌαααααΎαααααα α’ααααα·ααααααΆαα±ααΆαααΎααααΈααααααααΎαααΈαααααααααΆααααααα ααααααααααΎαααααΏαααααΆαααααααΆααααΈαααααΎαααΌαααααααΌα ααΆαα·ααααα ααααααααααΆαααααααΆαααα·αααΆαααααα ααΆααΎαα‘αΎααααααΆαααΆαα ααααααΎααΆαααααααααΈααΆα ααΆααααααΉαααααΆαααααααΆαα αα·ααααα»αααααα·αααα‘ααααααΎα α αΎαααΆααα·ααααααΆααΆααααααα ααααααα RAID 6 αααααα ααΆααΆαα’αΆαα αααααααΈ RAID 6 α’ααααααΆαααααααα ααααΆαααααααΆααα αα αααα»αααΆαααααααα ααΆααααααααααααααΎα ααΆαα’αΆαα αααααααΈ RAID 6 ααΊαα αΌαααα 6 αα (α ααα½α SATA SSDs αα αααα»αα’αΆαα) ααΏαααΆαααΆααααααα αααααΆααα αααα»ααααααΆαα CoW ααααΌαααΆααααα ααααΆαααααΆαααααααααΈα’αΆαααααΎα αααααΆααααααΆαααααα‘αααααααααα ααΆαααααααααΆααααααΆαααααα
αα»αααΆαααΆααααΈααααα’αΆα ααααΌαααΆαααααΎααΎααααΈααααααααααααααα’αααα
ααααΆαααααααΆααααΌααα "ααΆααααααΆ"
ααΎααααΈααΆαααααααα αΆαα·αααααααΆαααΆααααααα·αααααααααα»αααααΈααΆαααΆαααΌα ααΆα/ααΆαααααααααΆαααααααΆαα α’ααααα·ααααααααΎα±ααααααΆαααΆαα’αα»ααααααΆαααααα·αααΌαααααΎααααΈααΆααΆααΆαααααΉαααααΌααααααα½ααααααα»αααααΈαααα
ααΈαα½α αααααΆααα·ααααααααααΆααα·ααΆαααααΎααααα·ααα ααΎα§αααααααααα·αααΆααααααΆαα»α αα·ααααααααααΆααΉαααΆαααΆααααΈαααααΆααααααΆ α αΎαααΆαααΆαααααααα’αΆα ααΎαααΆαααΉαααααΌααααααΆα αααΈαααααα»ααααα»ααα·ααααααα
ααααααααα·αααΌαααααΆααααααααΆααΆααΌαααΆαααααΉαααααΌααααα·αααααααα ααΆααααα»αααΌααα αααα»αααααΈααΆαααααααααΆαααααααΆααα
- αααααΆααααΆαααααΎαααΈαα½αααααααΆαααααα <name> αααααΎαααΌααααα½ααααααΉααααααΆαααααα <name>.cached
- α
αΌααααααααααα·αααααΆαααααΎα
αααΆααααα»ααα
ααΆααααααααααααααααα
#lvchange --quiet --cachesettings "migration_threshold=16384" cache/cachedata
- αα
αααα»αααααα·ααα»αααΎααα·αα·αααααΎαα
ααα½ααααα»ααααααααα
αααα»αααααΆαααααααΆαα:
#lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}'
αα αΌααααααΎαααα½αααΆαααΌαααα ααααα·αααΎααΌαααααΆααααΌαααα ααΆα’αΆα ααααΌαααΆααααααΎααααααΆαααααΌαααααΆαααααααΆααααΆααααααα’αΆαααααα ααΆαααααααααααΆααααα αααααΆαααΆαααΆααααα ααααα·αααΌαααΈααααααααααΏαααα’αΆαα SATA αα·α NVMe SSD ααααααΎα ααααΌα ααΆααααΆα TBW αααααα½ααα α’αααααΉαα’αΆα α αΆααααΆαααααΆααααααα·αααααΆααααααΌαααααααααΆαααααααΆαα α¬αααααααΉαααααα’αααααΉααααΈααααΆαααΆααααΌαααααααΆααΆαααααα»ααα αααα»α ααΈαααΈβααααα αααααΆαααααααααααααααΆα ααααααααααΆαααααΆααααα·αα’αΆα αααα·ααα ααααα 100% ααααΆααααααααααααααααααΆα NVMe SSDs ααααααΎααααααααΆααααα»αααΆαααααα 100% ααΉαα’ααααααΆαααΆαααααα»α 3-4 ααααα. SATA SSDs ααΉαααΆαααααααααΌαααΆαααΈαααααα»αααααα ααΌα ααααα αΎα ααΎαααΉαααααααααΆ ααΆαα αααΎαααααααα»αααΊαα ααΆαα’αΆα α αΎαααΎαααΆαααΆααααα»αααααααααααΈαααααααααΆααααααααααΆαα αα½αααΆαα½αααΉαααααα»αααΆαααΆααααααααααΆααααΆααααααα - αααΆαααΆααΎαα αΆααααΆα (α¬αααααΎα) ααΌααα ααΎαααααΌαααααα <name>.cached αα <name>.committedα <name>.committed α αΆααβααααΌαβααΆαβαα»αα
- ααΆαααααΎα ααααα·αααΎααααΆαααααααΆααααα 100% ααΆα’αΆα ααααΌαααΆααααααΎαα‘αΎααα·ααααααααααΈα ααΌα αααααααα’αΆαααΆα ααΆαα½αααΉαααααΆαααααααΆααααΆαααααααΆαααα ααααααααααααΎαααΆαααΏαααΆααα»ααα ααααααααα
- αααααααααα·αααααΆαααααΎα
αααΆααααα»ααα
ααΌαααα
#lvchange --quiet --cachesettings "migration_threshold=0" cache/cachedata
ααΆβααΉαβααΆααΆααβααααΆααβαααααΆααβααΆβααααααα’αΆααααβααΈβααΆαβααααΎβααααΆαααααβαα βααααβα ααααα - ααΎααααα
αΆααα αΌααααααΆαααααΆααααααΌαααΆα
αααΎααααα»ααα
αααα»αααααΆαααααααΆαα
#lvs --rows --reportformat basic --quiet -ocache_dirty_blocks cache/cachedata | awk '{print $2}'
α¬αααααα·ααΈαααααααααααΉαααααα - ααΎαααααΎαααααααα
α ααα»α’αααΈβααΆαβααΆβαα·ααΆαβααΉαβααααα·αβααβααΆαβααααΎβα αααΆααααα»α...?ααΏααααααΊααΆαα αααα»αααΆαα’αα»ααααααΆαααααααααΆααα "α ααααα" ααΊαα·αααΆαα·αα αααααααΆαααααα»αα ααααα·αααΎααΎααααααα’αααΈαα½ααα ααααααααααΆαααα α 4 ααΈα‘αΌαα ααΆααΆαααααΌααΆαααΈααΈαααααααααααααα»αααααααααΈαααΈααΆααΈαααααΆαα αααααααααΆαα½αααΉαααααΌαααΆαααααΎα‘αΎαα αααααααααααΌα ααααΆ α¬ααααααα½αααααα’ααααα·αααΆα (+- 32K) α
ααΆααααααΆααααααααααα·αααααΆαααααΎα αααΆααααα»ααα ααΌααα ααΎααααααΆαααααααααααΆαααααΎααααΆααααααα ααΎ SATA SSD α αΎααααααΌααααα»αααΆαααααΆααααααΌααα½αα ααα½ααα ααΆαααα»α 64K αα½ααα αααα»αααααΆαααααααΆααα ααααααααΆαα»ααααΆαααααΆααααΌαααααΆααααα SATA SSD α
αααααΌααα α―ααΆ..ααΆα’αα»αα α’ααααα·ααααα αΆαααα»αααΆαααα½αααΆαααα·αααΆαααααΆααααααααααΆαααααα»αααΆαα’αα·ααααααααααααΈα bash αα αααααΆαααΆαααααααααααα½αα―α 100% αα·αα’αα»ααααααΆαα’αα·ααααααααααααα»αααα "google" ααΌα ααααααΆααααΏααΆαααααΌαααα’αΆααααααααα ααααΈααααααααΆαααα·ααα½αααααΌαααΆαααααΎααααΆαααααααααΆααααΆααα‘αΎαα ααααααααα
αααα»ααα·αααΆα’αααααααΆααααα»ααα·ααααααααΉαα’αΆα αααααΆαααα―αααΆαααααΌααααααα·ααααΆααΆααα’αααααααΆααα·αααααΆααΆαααΎ ααααα·αααΎα αΆαααΆα α α αΎααααα ααααΆααΌααααΈαααα ααΆααΆαααΆααααααααα’αΆαααΆααααΆαααααααααααα ααΌα αααα’ααααα·ααααααΆαααααΆααΆαααααΎα
αααααααΆαααααααα·αααΌαααααΆααααααααααααΉαα’αα»ααααΆαα±ααααΎααα·αααααΉαααααΆαααΌααααα½ααααααΉααααααααΎααααΆααααααααΆααααααααα ααΎ SATA SSD ααα»ααααααα ααα»ααααααααΉαα’αα»ααααΆαα±ααααΎααααααααΎα§αααααααααΎααααΆαα thin_delta ααΎααααΈααααΎαααΆααΎαααα»αααΆαα½αααααΌαααΆαααααΆααααααΌααααααΆααααΈααΆααααααΎαααααααΆ α αΎαααΌα ααααααααΎααΌαααααΆααΈαααααααΆαααΌα ααΆααα ααΎ ααα·ααΆαααααΆααα ααααΎα±ααααΆαααααΆαα‘αΎααα·αααΆααααααΆααααα½αα
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 α αΎααααα»αααααΌαααΆααααααααααΆαααααΉαααααΌαααΆαααα
αααα»αααααΆαααααααΆαα αα·ααα
αααα»αα’αΆαααααΎαα αααα»αααααΈααααααΎα ααΆααΎαα‘αΎαααΆα
αααααααα»ααααααααααααΆαααα αα
ααααα»αααΌααααααααΆααα
ααΆαααααα»ααα»α BTRFS
ααααΎααααααΈααααααααααα½α ααΆααααα ααΆαα½α ααααΆαα ααΆααααα»ααααααααααα·α αα αααα»αα αΆαα·αααααααΆαααααα½α. α’ααααα·αααααααααααΌααααααααααα½αα―α αα·ααααααΆαααααα½αααΆααααααΆααα αααα»αααααΆααααΆα’αααααααΎααααΆααααΈαα»α αααααΆααααα·αααααααΆα αααΎαααΆαα§αααααααααααααααΆ α αΎααα·αα αΆαααΆα αα ααααα’ααααααααααα
ααααααααΎαααααα·αααα‘αααα ααΎα§αααααααααα»ααα»αα
#lvcreate -L 256G --name backup backup
αααααααΎαααααααααΆαααΆαααα»α BTRFSα
#mkfs.btrfs /dev/backup/backup
ααααααααΎαα ααα»α αααα αα·ααααααααααααααααααααααααα―αααΆαα
#mkdir /backup
#mkdir /backup/btrfs
#mkdir /backup/btrfs/root
#mkdir /backup/btrfs/back
#ln -s /boot /backup/btrfs
# cat >>/etc/fstab << EOF
/dev/mapper/root-root /backup/btrfs/root btrfs defaults,space_cache,noatime,nodiratime 0 2
/dev/mapper/backup-backup /backup/btrfs/back btrfs defaults,space_cache,noatime,nodiratime 0 2
EOF
#mount -a
#update-initramfs -u
#update-grub
ααααααααΎαααα―αααΆααααααΆααααΆαααααα»ααα»αα
#mkdir /backup/btrfs/back/remote
#mkdir /backup/btrfs/back/remote/root
#mkdir /backup/btrfs/back/remote/boot
ααααααααΎααααααααΆααααααααΈαααααα»ααα»αα
#mkdir /root/btrfs-backup
αααα ααααααααααΈαα
ααΌα 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 ααααΎ / ααα½αα
ααΆαβααΆααβαααα ααβααΎαβααααΌαβα’αΆα βααΆαβαααβαααβααΌαβααααα... αα αααα αΆααααααΎα αα·ααααααααΆααα’ααααΉαααααΌαααΆαα ααααα ααΆαβααΆααβαααα ααβααααααβαααβααΉαβααΆαβααααΏαβααΏαβααΆααβαααααβ... ααΆαααααΆαααααΆααααααΌαααα»ααααααααααΉαααααΌαααΆαα ααααα
ααααααΈααα½αααααααααΎαααΉαααΆααα αΌααα αααα»α 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
ααΎβααΆβααααΎα’αααΈ..?αααααΎα αα·αααααΎααααΆαααααααΌαααααααααααααα·ααΆα BTRFS αααααΆαααΆααααααΈαα ααΎ FS ααααα»ααα»αα αααααΆααααΈααα ααΆαα»αααΌαααΆαααΆααα’αααααααΆααααααΎαααΆαααΈ 60 αααααα»αα αααααΆααααΈααΎαααααΎαααΆα ααΌααααααααΆαα α»αααΆαααα·α ααααααααΆααααααΆαααΆααααααΈααΉααααα αΆααα αααα»ααααα /backup/btrfs/back/remote/ α
αααααααααα·αααα·ααααα·ααααα·ααΌαα
#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
ααααααααΎααααααααΆααααααααΈαα
#mkdir /root/lvm-thin-backup
αααα ααααααααααΈαα
αααααΎαα
αααΎααα
ααΆααααα»α...#cat >/root/lvm-thin-backup/lvm-thin-backup.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"
LOCK_FILE="/dev/shm/$SCRIPT_NAME.lock"
DATE_PREFIX='%Y-%m-%d'
DATE_FORMAT=$DATE_PREFIX'-%H-%M-%S'
DATE_REGEX='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
BASE_SUFFIX=".base"
PEND_SUFFIX=".pend"
SNAP_SUFFIX=".snap"
BACKUPS="backup"
BACKUPS_POOL="thin-pool"
export LVM_SUPPRESS_FD_WARNINGS=1
function terminate ()
{
echo "$1" >&2
exit 1
}
function wait_lock()
{
flock 98
}
function wait_lock_or_terminate()
{
echo "Wating for lock..."
wait_lock || terminate "Failed to get lock. Exiting..."
echo "Got lock..."
}
function suffix()
{
FORMATTED_DATE=$(date +"$DATE_FORMAT")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}
function filter()
{
FORMATTED_DATE=$(date --date="$1" +"$DATE_PREFIX")
echo "$SNAP_SUFFIX.$FORMATTED_DATE"
}
function read_thin_id {
lvs --rows --reportformat basic --quiet -othin_id "$1/$2" | awk '{print $2}'
}
function read_pool_lv {
lvs --rows --reportformat basic --quiet -opool_lv "$1/$2" | awk '{print $2}'
}
function read_lv_dm_path {
lvs --rows --reportformat basic --quiet -olv_dm_path "$1/$2" | awk '{print $2}'
}
function read_lv_active {
lvs --rows --reportformat basic --quiet -olv_active "$1/$2" | awk '{print $2}'
}
function read_lv_chunk_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -ochunk_size "$1/$2" | awk '{print $2}'
}
function read_lv_size {
lvs --rows --reportformat basic --quiet --units b --nosuffix -olv_size "$1/$2" | awk '{print $2}'
}
function activate_volume {
lvchange -ay -Ky "$1/$2"
}
function deactivate_volume {
lvchange -an "$1/$2"
}
function read_thin_metadata_snap {
dmsetup status "$1" | awk '{print $7}'
}
function thindiff()
{
DIFF_VG="$1"
DIFF_SOURCE="$2"
DIFF_TARGET="$3"
DIFF_SOURCE_POOL=$(read_pool_lv $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_POOL=$(read_pool_lv $DIFF_VG $DIFF_TARGET)
if [ "$DIFF_SOURCE_POOL" == "" ]
then
(>&2 echo "Source LV is not thin.")
exit 1
fi
if [ "$DIFF_TARGET_POOL" == "" ]
then
(>&2 echo "Target LV is not thin.")
exit 1
fi
if [ "$DIFF_SOURCE_POOL" != "$DIFF_TARGET_POOL" ]
then
(>&2 echo "Source and target LVs belong to different thin pools.")
exit 1
fi
DIFF_POOL_PATH=$(read_lv_dm_path $DIFF_VG $DIFF_SOURCE_POOL)
DIFF_SOURCE_ID=$(read_thin_id $DIFF_VG $DIFF_SOURCE)
DIFF_TARGET_ID=$(read_thin_id $DIFF_VG $DIFF_TARGET)
DIFF_POOL_PATH_TPOOL="$DIFF_POOL_PATH-tpool"
DIFF_POOL_PATH_TMETA="$DIFF_POOL_PATH"_tmeta
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)
if [ "$DIFF_POOL_METADATA_SNAP" != "-" ]
then
(>&2 echo "Thin pool metadata snapshot already exist. Assuming stale one. Will release metadata snapshot in 5 seconds.")
sleep 5
dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap
fi
dmsetup message $DIFF_POOL_PATH_TPOOL 0 reserve_metadata_snap
DIFF_POOL_METADATA_SNAP=$(read_thin_metadata_snap $DIFF_POOL_PATH_TPOOL)
if [ "$DIFF_POOL_METADATA_SNAP" == "-" ]
then
(>&2 echo "Failed to create thin pool metadata snapshot.")
exit 1
fi
#We keep output in variable because metadata snapshot need to be released early.
DIFF_DATA=$(thin_delta -m$DIFF_POOL_METADATA_SNAP --snap1 $DIFF_SOURCE_ID --snap2 $DIFF_TARGET_ID $DIFF_POOL_PATH_TMETA)
dmsetup message $DIFF_POOL_PATH_TPOOL 0 release_metadata_snap
echo $"$DIFF_DATA" | grep -E 'different|left_only|right_only' | sed 's/</"/g' | sed 's/ /"/g' | awk -F'"' '{print $6 "t" $8 "t" $11}' | sed 's/different/copy/g' | sed 's/left_only/copy/g' | sed 's/right_only/discard/g'
}
function thinsync()
{
SYNC_VG="$1"
SYNC_PEND="$2"
SYNC_BASE="$3"
SYNC_TARGET="$4"
SYNC_PEND_POOL=$(read_pool_lv $SYNC_VG $SYNC_PEND)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SYNC_VG $SYNC_PEND_POOL)
SYNC_PEND_PATH=$(read_lv_dm_path $SYNC_VG $SYNC_PEND)
activate_volume $SYNC_VG $SYNC_PEND
while read -r SYNC_ACTION SYNC_OFFSET SYNC_LENGTH ; do
SYNC_OFFSET_BYTES=$((SYNC_OFFSET * SYNC_BLOCK_SIZE))
SYNC_LENGTH_BYTES=$((SYNC_LENGTH * SYNC_BLOCK_SIZE))
if [ "$SYNC_ACTION" == "copy" ]
then
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SYNC_PEND_PATH" "$SYNC_TARGET"
fi
if [ "$SYNC_ACTION" == "discard" ]
then
blkdiscard -o $SYNC_OFFSET_BYTES -l $SYNC_LENGTH_BYTES "$SYNC_TARGET"
fi
done < <(thindiff "$SYNC_VG" "$SYNC_PEND" "$SYNC_BASE")
}
function discard_volume()
{
DISCARD_VG="$1"
DISCARD_LV="$2"
DISCARD_LV_PATH=$(read_lv_dm_path "$DISCARD_VG" "$DISCARD_LV")
if [ "$DISCARD_LV_PATH" != "" ]
then
echo "$DISCARD_LV_PATH found"
else
echo "$DISCARD_LV not found in $DISCARD_VG"
exit 1
fi
DISCARD_LV_POOL=$(read_pool_lv $DISCARD_VG $DISCARD_LV)
DISCARD_LV_SIZE=$(read_lv_size "$DISCARD_VG" "$DISCARD_LV")
lvremove -y --quiet "$DISCARD_LV_PATH" || exit 1
lvcreate --thin-pool "$DISCARD_LV_POOL" -V "$DISCARD_LV_SIZE"B --name "$DISCARD_LV" "$DISCARD_VG" || exit 1
}
function backup()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
SOURCE_PEND_LV="$SOURCE_LV$PEND_SUFFIX"
TARGET_PEND_LV="$TARGET_LV$PEND_SUFFIX"
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")
if [ "$SOURCE_BASE_LV_PATH" != "" ]
then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "Source base not found creating snapshot of $SOURCE_VG/$SOURCE_LV to $SOURCE_VG/$SOURCE_BASE_LV"
lvcreate --quiet --snapshot --name "$SOURCE_BASE_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo "Discarding $SOURCE_BASE_LV_PATH as we need to bootstrap."
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
sync
if [ "$TARGET_BASE_LV_PATH" != "" ]
then
echo "$TARGET_BASE_LV_PATH found out of sync with source... removing..."
lvremove -y --quiet $TARGET_BASE_LV_PATH || exit 1
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
sync
fi
fi
SOURCE_BASE_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_BASE_LV")
if [ "$TARGET_BASE_LV_PATH" != "" ]
then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_VG/$TARGET_LV not found. Creating empty volume."
lvcreate --thin-pool "$BACKUPS_POOL" -V "$SOURCE_BASE_SIZE"B --name "$TARGET_BASE_LV" "$TARGET_VG" || exit 1
echo "Have to rebootstrap. Discarding source at $SOURCE_BASE_LV_PATH"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SOURCE_BASE_CHUNK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
discard_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
TARGET_BASE_POOL=$(read_pool_lv $TARGET_VG $TARGET_BASE_LV)
TARGET_BASE_CHUNK_SIZE=$(read_lv_chunk_size $TARGET_VG $TARGET_BASE_POOL)
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
echo "Discarding target at $TARGET_BASE_LV_PATH"
discard_volume "$TARGET_VG" "$TARGET_BASE_LV"
sync
fi
if [ "$SOURCE_PEND_LV_PATH" != "" ]
then
echo "$SOURCE_PEND_LV_PATH found removing..."
lvremove -y --quiet "$SOURCE_PEND_LV_PATH" || exit 1
sync
fi
lvcreate --quiet --snapshot --name "$SOURCE_PEND_LV" "$SOURCE_VG/$SOURCE_LV" || exit 1
SOURCE_PEND_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_PEND_LV")
sync
if [ "$TARGET_PEND_LV_PATH" != "" ]
then
echo "$TARGET_PEND_LV_PATH found removing..."
lvremove -y --quiet $TARGET_PEND_LV_PATH
sync
fi
lvcreate --quiet --snapshot --name "$TARGET_PEND_LV" "$TARGET_VG/$TARGET_BASE_LV" || exit 1
TARGET_PEND_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_PEND_LV")
SOURCE_PEND_LV_SIZE=$(read_lv_size "$SOURCE_VG" "$SOURCE_PEND_LV")
lvresize -L "$SOURCE_PEND_LV_SIZE"B "$TARGET_PEND_LV_PATH"
activate_volume "$TARGET_VG" "$TARGET_PEND_LV"
echo "Synching $SOURCE_PEND_LV_PATH to $TARGET_PEND_LV_PATH"
thinsync "$SOURCE_VG" "$SOURCE_PEND_LV" "$SOURCE_BASE_LV" "$TARGET_PEND_LV_PATH" || exit 1
sync
TARGET_DATE_SUFFIX=$(suffix)
lvcreate --quiet --snapshot --name "$TARGET_LV$TARGET_DATE_SUFFIX" "$TARGET_VG/$TARGET_PEND_LV" || exit 1
sync
lvremove --quiet -y "$SOURCE_BASE_LV_PATH" || exit 1
sync
lvremove --quiet -y "$TARGET_BASE_LV_PATH" || exit 1
sync
lvrename -y "$SOURCE_VG/$SOURCE_PEND_LV" "$SOURCE_BASE_LV" || exit 1
lvrename -y "$TARGET_VG/$TARGET_PEND_LV" "$TARGET_BASE_LV" || exit 1
sync
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}
function verify()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
if [ "$SOURCE_BASE_LV_PATH" != "" ]
then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ]
then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
echo Comparing "$SOURCE_BASE_LV_PATH" with "$TARGET_BASE_LV_PATH"
cmp "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}
function resync()
{
SOURCE_VG="$1"
SOURCE_LV="$2"
TARGET_VG="$BACKUPS"
TARGET_LV="$SOURCE_VG-$SOURCE_LV"
SOURCE_BASE_LV="$SOURCE_LV$BASE_SUFFIX"
TARGET_BASE_LV="$TARGET_LV$BASE_SUFFIX"
TARGET_BASE_LV_PATH=$(read_lv_dm_path "$TARGET_VG" "$TARGET_BASE_LV")
SOURCE_BASE_LV_PATH=$(read_lv_dm_path "$SOURCE_VG" "$SOURCE_BASE_LV")
if [ "$SOURCE_BASE_LV_PATH" != "" ]
then
echo "$SOURCE_BASE_LV_PATH found"
else
echo "$SOURCE_BASE_LV_PATH not found"
exit 1
fi
if [ "$TARGET_BASE_LV_PATH" != "" ]
then
echo "$TARGET_BASE_LV_PATH found"
else
echo "$TARGET_BASE_LV_PATH not found"
exit 1
fi
activate_volume "$TARGET_VG" "$TARGET_BASE_LV"
activate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
SOURCE_BASE_POOL=$(read_pool_lv $SOURCE_VG $SOURCE_BASE_LV)
SYNC_BLOCK_SIZE=$(read_lv_chunk_size $SOURCE_VG $SOURCE_BASE_POOL)
echo Syncronizing "$SOURCE_BASE_LV_PATH" to "$TARGET_BASE_LV_PATH"
CMP_OFFSET=0
while [[ "$CMP_OFFSET" != "" ]] ; do
CMP_MISMATCH=$(cmp -i "$CMP_OFFSET" "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH" | grep differ | awk '{print $5}' | sed 's/,//g' )
if [[ "$CMP_MISMATCH" != "" ]] ; then
CMP_OFFSET=$(( CMP_MISMATCH + CMP_OFFSET ))
SYNC_OFFSET_BYTES=$(( ( CMP_OFFSET / SYNC_BLOCK_SIZE ) * SYNC_BLOCK_SIZE ))
SYNC_LENGTH_BYTES=$(( SYNC_BLOCK_SIZE ))
echo "Synching $SYNC_LENGTH_BYTES bytes at $SYNC_OFFSET_BYTES from $SOURCE_BASE_LV_PATH to $TARGET_BASE_LV_PATH"
ddrescue --quiet --force --input-position=$SYNC_OFFSET_BYTES --output-position=$SYNC_OFFSET_BYTES --size=$SYNC_LENGTH_BYTES "$SOURCE_BASE_LV_PATH" "$TARGET_BASE_LV_PATH"
else
CMP_OFFSET=""
fi
done
echo Done...
deactivate_volume "$TARGET_VG" "$TARGET_BASE_LV"
deactivate_volume "$SOURCE_VG" "$SOURCE_BASE_LV"
}
function list()
{
LIST_SOURCE_VG="$1"
LIST_SOURCE_LV="$2"
LIST_TARGET_VG="$BACKUPS"
LIST_TARGET_LV="$LIST_SOURCE_VG-$LIST_SOURCE_LV"
LIST_TARGET_BASE_LV="$LIST_TARGET_LV$SNAP_SUFFIX"
lvs -olv_name | grep "$LIST_TARGET_BASE_LV.$DATE_REGEX"
}
function remove()
{
REMOVE_TARGET_VG="$BACKUPS"
REMOVE_TARGET_LV="$1"
lvremove -y "$REMOVE_TARGET_VG/$REMOVE_TARGET_LV"
sync
}
function removeall()
{
DATE_OFFSET="$3"
FILTER="$(filter "$DATE_OFFSET")"
while read -r SNAPSHOT ; do
remove "$SNAPSHOT"
done < <(list "$1" "$2" | grep "$FILTER")
}
(
COMMAND="$1"
shift
case "$COMMAND" in
"--help")
echo "Help"
;;
"suffix")
suffix
;;
"filter")
filter "$1"
;;
"backup")
wait_lock_or_terminate
backup "$1" "$2"
;;
"list")
list "$1" "$2"
;;
"thindiff")
thindiff "$1" "$2" "$3"
;;
"thinsync")
thinsync "$1" "$2" "$3" "$4"
;;
"verify")
wait_lock_or_terminate
verify "$1" "$2"
;;
"resync")
wait_lock_or_terminate
resync "$1" "$2"
;;
"remove")
wait_lock_or_terminate
remove "$1"
;;
"removeall")
wait_lock_or_terminate
removeall "$1" "$2" "$3"
;;
*)
echo "None.."
;;
esac
) 98>$LOCK_FILE
EOF
ααΎβααΆβααααΎα’αααΈ...?ααΆααααα»αααααΆααααααααΆαααααΆαααααα αααΌαααααααΎα αα·αααααΎααααΆαααααααΆααα»αααααΆαααΆαααΌαααααααΎαααΈααααααα½αααΆαααΆαααα thin_delta αα α§ααααααααα»ααααααααααααααααΎ ddrescue αα·α blkdiscard α
ααααααΈααα½αααααααααΎαααΉαααΆαααααα»α cronα
αα»αααααα·α
αααα#cat >/root/lvm-thin-backup/cron-daily.sh << EOF
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SCRIPT_FILE="$(realpath $0)"
SCRIPT_DIR="$(dirname $SCRIPT_FILE)"
SCRIPT_NAME="$(basename -s .sh $SCRIPT_FILE)"
BACKUP_SCRIPT="$SCRIPT_DIR/lvm-thin-backup.sh"
RETENTION="-60 days"
$BACKUP_SCRIPT backup images linux-dev
$BACKUP_SCRIPT backup images win8
$BACKUP_SCRIPT backup images win8-data
#etc
$BACKUP_SCRIPT removeall images linux-dev "$RETENTION"
$BACKUP_SCRIPT removeall images win8 "$RETENTION"
$BACKUP_SCRIPT removeall images win8-data "$RETENTION"
#etc
EOF
ααΎβααΆβααααΎα’αααΈ...?ααααΎααααααΈαααΈαα»αααΎααααΈαααααΎα αα·αααααΎααααΆαααααααΆαααααα»ααα»αααααΆαααααΎααααααΆαααΆααααααΈα ααααααΈαααΉααα»αααΌαααα’αααααααααα·ααΆααααααΆαααΆααααααΈ αααα αΆαααΆα αααΎααααΈααΆαααΆαααΆαααααΆααααααΌαα αΆααααΆααααΈααΆαααααΎααααΆαααααα α»ααααααα
ααααααΈααααααααΌαααααααΌαααΆαααααααα½α ααααααααΆαααααααΈααααΆαααααΎα αααα αααΆααα ααααααααα»ααα»ααα½αααααααΌαααΆαααααΎα‘αΎαα ααααααααααΆααααααα±ααααΊαααααΆααααααααααααα αΆαααααα»αααααα ααααα·αααΎα’αααααααΆααααΆ α’αααα’αΆα αααααααααααΈααααααΉαααααΎααααΆαααααααΆαααΆααα’ααα
αααααααααα·αααα·α
#chmod +x /root/lvm-thin-backup/cron-daily.sh
#chmod +x /root/lvm-thin-backup/lvm-thin-backup.sh
ααααα·αα·αααααΎαααΆα αΎαααΆααααΆαα αααα»α 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
ααΆαβααααααβααΎαβααααΌαβααΉαβααΆαβααααααβααΌαβααααα... ααα·ααΆαααααΎαααΉαααααΌαααΆαααααΎααααΆααααααααααααααα
ααααααα ααααααΆαααααΎααΆααα’ααα ααΌαα’ααα»αα
αααααα·ααααααααααΆααααΎααααα LVM ααΎαααΉαααΆαααα»αααΆαα½ααααα»αααααΎααααΆαααααΆααα·αααααΆαα ααΌα
ααααααΆααααααα»αααα·ααΆαααααΎααααααΆαααααΎαα·αααααΆααααα»αααααααΉαααααΌαααΆαα
ααααα
ααΆααααααΆαααααααααΆααααΉαα αααααα·ααααααααΆαααααααααΆαα αααααΆαααΆαααααΆααααααΌαααΆαααΆαααΆαααΆαααααα·ααααααααααΆααααΎα LVM α
αααααΎαααΆααΆαα’αααΈααΎαα‘αΎαα
#time /root/btrfs-backup/cron-daily.sh
real 0m2,967s
user 0m0,225s
sys 0m0,353s
#time /root/lvm-thin-backup/cron-daily.sh
real 1m2,710s
user 0m12,721s
sys 0m6,671s
#ls -al /backup/btrfs/back/remote/*
/backup/btrfs/back/remote/boot:
total 0
drwxr-xr-x 1 root root 1260 ΠΌΠ°Ρ 26 09:11 .
drwxr-xr-x 1 root root 16 ΠΌΠ°Ρ 6 09:30 ..
drwxr-xr-x 1 root root 322 ΠΌΠ°Ρ 26 02:00 .@base
drwxr-xr-x 1 root root 516 ΠΌΠ°Ρ 6 09:39 [email protected]
drwxr-xr-x 1 root root 516 ΠΌΠ°Ρ 6 09:39 [email protected]
...
/backup/btrfs/back/remote/root:
total 0
drwxr-xr-x 1 root root 2820 ΠΌΠ°Ρ 26 09:11 .
drwxr-xr-x 1 root root 16 ΠΌΠ°Ρ 6 09:30 ..
drwxr-xr-x 1 root root 240 ΠΌΠ°Ρ 26 09:11 @.@base
drwxr-xr-x 1 root root 22 ΠΌΠ°Ρ 26 09:11 @home.@base
drwxr-xr-x 1 root root 22 ΠΌΠ°Ρ 6 09:39 @[email protected]
drwxr-xr-x 1 root root 22 ΠΌΠ°Ρ 6 09:39 @[email protected]
...
drwxr-xr-x 1 root root 240 ΠΌΠ°Ρ 6 09:39 @[email protected]
drwxr-xr-x 1 root root 240 ΠΌΠ°Ρ 6 09:39 @[email protected]
...
#lvs -olv_name,lv_size images && lvs -olv_name,lv_size backup
LV LSize
linux-dev 128,00g
linux-dev.base 128,00g
thin-pool 1,38t
win8 128,00g
win8-data 2,00t
win8-data.base 2,00t
win8.base 128,00g
LV LSize
backup 256,00g
images-linux-dev.base 128,00g
images-linux-dev.snap.2020-03-08-10-09-11 128,00g
images-linux-dev.snap.2020-03-08-10-09-25 128,00g
...
images-win8-data.base 2,00t
images-win8-data.snap.2020-03-16-14-11-55 2,00t
images-win8-data.snap.2020-03-16-14-19-50 2,00t
...
images-win8.base 128,00g
images-win8.snap.2020-03-17-04-51-46 128,00g
images-win8.snap.2020-03-18-03-02-49 128,00g
...
thin-pool <2,09t
ααΎβαααβααΆαβα’αααΈβααΆααααβααΉαβαα»αααααΆβαααα»α?
ααΆαα αααΎαααααααΆααααΌαααΆααααααα±ααααΆααα·ααΆαα‘αΌααΈαα LVM LV α’αΆα ααΆααα·ααΆαααΌααααα LVM PV αααααΆαα VGs ααααααααα LVM α’αΆα ααΎαα‘αΎαααααα ααΌα ααΆαα»αααααΆαααα»αα ααααααααα±αα LVM ααΆαααΆαααααααααααΆααα
PS
αα
αααα»αα’ααααααααααΆαα ααΎαααΉαααααΆααΆαααααΎαααααααααααα»ααα·ααααααα
αααααααααααααΆαα½αα
ααα½α/KVM ααΆααΌαααααΆααααααΆαααααααΎαα
ααααααααααααααα»α/vm αααααΆαα
ααα
αΆαααΆαααΌαα·ααΆαααααααΆαα½αααΉαααΆααααααααΌαααΆαααα
ααααα
ααΎααααΈαααΆα
αααΎααααααααΎαα»αααααΌαααααΎαα»αααα α’ααΈαααΊαα·ααα
αααα αα·ααααααΆα P2P α
ααααα: www.habr.com