ααΌα
αααα’αααααΆαααΉαα αΎαααΆααααα·αααΎαααα αΆα’αΆα
ααΎαα‘αΎααααααΆαα·αααΆααΉαααΎαα‘αΎαα αααα ααααΆααα»ααααααααααααΆααααΆααααΆαααααΈαα
ααααααα―αααΆαααααΆααααααΈααααααααΌαααΆααα»ααααα
ααααα α¬α’αααααααααΌαααΆαααααΎαααΎα αα·αααααααΆααααα
ααααααα
αααα»ααααααα·ααΈαα·ααααα’αααααα
ααααα·αααΎα’αααααΆααα αΆααααα ααααα α¬ααα αΆααααα ααααα αααα’ααααααα ααααΆααΆααα½ααααααααΆααα½α α αΌαααααΈα’αααααααΎααααΆαα α¬ααα αααααααααα’αααα αααα»αααααΈαααααα ααΆα αΆαααΆα ααααα»αααΆαααααΆαααΆααααααααα· ααααααααα·ααΈααΆαααααααααΆαα αΌα αα·αααΆαααΆαααααααααααααααΎαααα’αααααΆααααα αΆαα
ααααααααα―αααΆα NILFS2 ααΊααα’α₯αααα
αααααααΆααααΆααααααααΆααααα αΆααααααα
ααΆααΆαααααααΆααα
αααα»αααΊαααααΈαα»α
ααΆααααΈαααα 2.6.30α
ααΆααααααααααααααααα―αααΆααααααΊααΆααΆαααααααα ααΉααααααααααααα½ααα·αα·αααααααα α’ααααααααα’αΆα αααα·αααααΆαααΆααααααααααααααα‘αααααα·α α αΎαααΎαααΆααΎααΆααΌα ααΆαααΈααα»ααααΆαααααΆααα»αα
ααΎααααΈααααααα»αααΆαααα α’ααααα·αα αΆαααΆα αααααααα ααΆααααααααααααααΈα Cron ααααΌα ααΆααΎαα ααααααααα―αααΆα NILFS2 ααααΎα’αααΈαααΆααα’αααααααααααα½αα―αα ααΆβαα·αβαααβαααααβααΆααβααΎβαα·ααααααβα αΆααβα‘αΎα α αΎαβαααβααβαααααβαα βαααααβααααΈβααβααΆαβααααα·αβααΎβααΆαβααα αβαααααβαααααααααΆααβααβααΆαα α’αα»αααβααΆαβαααααΆααα Copy-on-Write α
ααΆααΆααα·α ααΆααααΆαααααΆααααααΌααα α―αααΆαααΉααααααΎαααΌαααααααΈααααααααααα―αααΆααααααααααααααααα· ααΌα ααααα’αααα’αΆα ααααΎ FS αααααααΎααΆαααΆαααΈαααααααααααααΆ αα·αααααα·αααααΆαααΆαα―αααΆαα‘αΎααα·αα
ΠΡΡΠΎΡΠΈΡ
NILFS2 ααααΌαααΆααααααΎαα‘αΎααα
αααα»αααααα
αα
α’αααΈβαααβααΆβααααΌαβααΆαβαααααΎαβα‘αΎαβαααΆαβααααΆααβαααβααΊβαα·αβααΉαβαα αααβααΆβαααΆαβααΆβααΆβα’αΆα βααααα·ααααΆαβααΆαβααΆ FS αααβαααβααΆαα½αβααΉαβαα»αααΆα "time machine" ααααβααΆβααΊβααα’βαααααΆααβααΆαβαααααΆαα»αβαα·ααααααβαααβααααΆβαααΎαααΆαααβα’αΆα βααΉαβα ααβααΈαβαααΆαβααΎααααΈβα αΆααβααΌαααΆαβααΆααααΌαβα‘αΎααα·αα ααΆα SMS α’ααΈαααααα
NILFS2 ααααΆα§αααααααααΆαααααααααααΆααααααΆααααααααα·αα»ααααααααα»αααααα αααααααΆα’αα»ααααΆαα±ααα’ααααααααα·αααΌαα’αααααααααΆααα»αααΆααα’αααα αααα»αααΌαααααΆααα·αααααααααα»ααα ααααααα αΆαααΈααΆαααΆααααΆαααααααα»ααααα·ααααα’αΆα ααααΆααΆααααααααααααα½αααααΆαααααααααΆαααααααΆααα»α α¬ααααΆααααααΌαα―αααΆααααααα½αααα
ααΎα’αααα’αΆα
ααΆαααΆααααααααα·ααΆαααααΎαααααααααα’ααααααααααααΆ?αα
ααΎαααΆαααΈαααααΈαα»α
(α αΎααααααΆααααααααα NILFS2 αα½αααααααΌαααΆαααα‘αΎααααααΆααααααααααα»ααααα·ααΆαααΆααααα»α) αα·ααΈααΆαααααα―αααΆαααααΆααααααΆαα»αα’ααΈαααααααΌαααΆαααααΎααΆααΉαααΆααααΆααααΎααααΈαααααΆαα»αααΆαα’ααΈαααα αααααααααααα α
ααΆ
ααααα·αααΎαααΆαααΈααααααα»αααααααΎααΌαααααΆααα·αααααα ααα NILFS2 ααΉαααααΎα±ααααΆα’αΆα ααααΆαα‘αΎααα·αααΌααααααααΆαα·αααααΆααααααΆαααααΆααααααΌαααΌαααααΆααα·αααααα αα·ααααααααΆααααα»αααΆαααααΆαααΌαααααΆααα·ααααααα‘αΎααα·ααα αααααΆαα½ααααααααααΆααΆαααααα α αΎαβαααααΆααβααβα’αααβααααΌαβααααΎβα§αααααβααΌαααααΆαβαα·ααααααβααΎααααΈβααΎαβααΆβααΆαβα’αααΈβαα βαααα»αβαααβααα...
ααααααΆαααΆααααα ααΆαα’αααΈαα½ααα»αααααααααΈα ααΆαααααααΆαα·ααΆααααα»αααΆαααααΆααααααΌααααα·ααααααααα½αα’αααΈααΆααααα½ααα·αα·αααααα»ααααααααααααΆ (a la the Yarovaya αααααΆααα) α¬ααΆαα’αα»αααααααα NILFS2 αα ααΎ HDDs ααααααααααΈααΆααααααα ααΆααΆαααΆαα αΎα NILFS2 ααααΌαααΆαα ααααααΆααααααα’αΆααααΆααααα GPL α αΎαααΆαα αΌααα αααα»αααΊαααααΈαα»α αααΆαααΏαα αΆααααΆααααΈ αα·αααΆαααΆαααα’αΌαααα’ααααΆααααΆααααΆαα½αα’αααΈααΌαααααααααααΆααΆααΆαααα»ααααααΆααααααααΆααααααααααα α’αααα’αα·ααααααααααΊαααααΈαα»α αα·αααΆαααΆααα
ααΎ NILFS2 ααΆαααααααααΌα ααααα ?
ααΆαααααααααααΆαααααΎααααΆααα αα
ααΎααααααααααααααααααααα
ααΆαααααααααααα’αααααααααααααα·ααΈα ααα·ααααααα’αΆααααααΆαααΆααααααα ααααααααα―αααΆααααααΌααααα»αααΆαααααΆααααααΌαα αΎααααααααΆαα ααΆααααΆαααααααααΎααΉααααα αα 8 MB (2000 * 4096 ααα 2000 ααΊααΆα ααα½αααΆαα»αα αααα»ααααα»α αα·α 4096 ααΊααΆααα ααααααααα’αααα αα αΆα) α ααΆαααΆααααΌαααααΌαααΆααααα αααα ααΆααααΆααααααααα ααΆαααααααααΆαααααΆαααααααα αα ααααααααα ααααααα’αα ααΌαααα αΆαααααα»αααααΌαααΆααα»α α αΎαααααΆααααααΌαααΆααααααααΆααααΈααΎα
α’ααααααααααα NILFS2 ααΌαααααΆα
- αααααααααα !!!
- ααΈαα·αα·ααΈαααααΆααααΆαααααΆαααααααααα―αααΆααααααΆααααΈααΆααααΆαααααΊααΆαααα: αα ααααααα»α ααααΆααα α»αααααααααααΆα checksum ααααΉαααααΌαααααΌαααΆαααααααα α αΎα superblock ααααΌαααΆαααα‘αΎααα ααΎααΆα αααααΊααΆααααα·ααααα·ααΆαααααΎαααααααΆααα
- αααααΆαααααΆααα·ααααααΆααΆααααααααΆαααααααααΎαααΆαααΆααΈααα’ααα ααΌα
ααααα
- α’αΆα αααα αΆαααααααααα’αα αααααααΎαααΆαααΎ SSD ααΆαα½αααΉαααΆααααααα αααααααΊαα
- NILFS2 αααααΆαα»αααααΆα SSD αααααααααΎαααααααΆααααααΆαα»αααααΆααααααα
α αααΆααααΆαααααα ααα ααΆαα·αααΎαααΈ 2 αααααΆααα·αααΊααΆαα ααααααααα‘αΎααα·αααΌαααΆαααΆααααΌα NILFS2 ααΉαααααααα·ααααααααααα·αα’αΆα ααααΆααααααΌαααΆααα ααΆαααααααααΈ (ααααΆαα)αααααα·αααΎααΎαααΆα 10% αααα·ααααααααααα·αααααΆααααααΌααα ααΎααΈαααα ααΎαααΉαααα½αααΆαααΆαααΎαα‘αΎα 10% ααΆαα½αααΉαααΆααααααα‘αΎααα·ααααααα 1 α ααΆααΆααααααΎαααΆαα ααΆαααΎαα‘αΎα 50% αα ααΆααααααα 50% ααα§ααααααααααΆαα 1 ααΆααααααα‘αΎααα·αααααααααααΆαα
ααΆαααΎαα‘αΎαα’αα·ααααΆααααΆααααααααΊ 2. αααααΊααΆαααΆααααααα·α αΆαααΆααΆα’αααΈααααααααΆαααααΌαααΆααααααααΆαααααααααΆααα ααΆααΌαα ααααΌαααΈαα ααααααααΉααα·α ααΆαααααααααα―αααΆααααα ααααααααΆαααααΆαααααα 4096 ααα (αααα·ααααα»ααααα·αααα
ααα·ααααα ).
- ααΆαααΆααααα½ααααααΆαα»ααααααΆαα’αα»ααααααΆαα αααααα NILFS2 FS ααΈα ααααΆα
NILFS2 αααααΆαα / αααα
αα αααα»αααααααααααααα·ααααα·ααΆαααΌα Unix ααΆαααα½αααΆααα /home ααααα·ααααααα’αααααααΎααααΆααααααΌαααΆααααααΆαα»αα αααααα·ααΈαααααααααααΆαα»αααΆααααααα’αααααααΎααααΆααααΆααααΆαααααααα½ααααα αααα»ααααααα
α αΎαα’αααααΆ ααΎαα·ααααααΆα’αααααααΎααααΆαα ααααΎαα»αααΉαααΆααααΆααα? ααΌα αααα ααΌα ααααα½ααααα·ααΆα ααααααΆααα αΆαααααααααααΆααααΆααααααΆα±ααααααΎ NILFS2 αα ααΎ /home α
ααΎαααΈααααα ααα ααΆαα½αααΉαααΆαααααΎααααΆαααααΆαααΌααααΌααΆααα SSDs α₯α‘αΌααααααΎααααααΆαααΆααααα½αααΆααααα’αααΈααΆαααααααααααααααα αααααααΎααααΆααααααααααα―αααΆα CoW αααα αΎαα
ααΆα/α αΆα ααΎαα’αΆα αααααΎα FS snapshots ααΆααΉαααΆααααΌα αααααΎαα αΌαα α·ααααα αααα»α ZFS αα·α BTRFS ααα»αααααααααααΆαα αΆαα·ααααααααΆαααααΆααααααΌαα―αααΆααααααΆαααααααΉααααα αααααΆαααΌαααα α αΎαβααΌαααΆαβαα βααβααααΌαβαααααααααα ααΌαβα αΆααβααααΌαβαα»αβα ααα αα αααα»α NILFS2 α’αααΈαααΆααα’αααααααΎαα‘αΎααααααααααααααααα· ααΆαααααΆααααΈαααΈαα·ααΆααΈα
αααα»αααΆααααααΎαααα·ααΆαα‘αΌααΈαααααααααΎ lvcreate (αα αααα»ααααα»αααα·ααΆα nvme α’αΆαααααΎα) α αααα»αααΌαααααΆαα±αααααααΎαααΆαα ααΎααααα·αααα‘αα lvm αααααααΆα’αΆα αααααΈαααΆααααΆαααΆααααα½ααα ααααααααα αααα»αααΌααααααα’αα»ααΆαααα±ααααΆαααα αααΆαα₯ααα·ααααα 50% ααΆαα½α NILFS2 αααααΆααααααα ααααααααααα
lvcreate -V10G -T nvme/thin -n home
αα·αααααΎαααααααααΆαααΆαα αααα»α NILFS2:
mkfs.nilfs2 -L nvme_home /dev/nvme/home
mkfs.nilfs2 (nilfs-utils 2.1.5)
Start writing file system initial data to the device
Blocksize:4096 Device:/dev/nvme/home1 Device Size:10737418240
File system initialization succeeded !!
αααααΆααααΈααα α’αααααααΌαα αααααα·ααααααααΆααα’ααααΈ/home αα αα α»ααααααα
αααα»αααΆαααααΎααΆααααΆαααααααΆααααΈα αΆααααααΎααα»αααααΌααα αα»ααααα αΌαααααΈαααααααα»ααααα»αααΆαααΆα’αααααααΎααααΆαα root ααααα·αααΎαααα»αα αΌαααΆα’αααααααΎααααΆαααααααααα»α αααααα·ααΈαα½αα ααα½αααΉαααΎααααα αα·αα―αααΆααα αααα»ααα /home/user folder ααααα’αααααααΎαααααααα»α αααααΉαααααΎα±ααααΆαα ααααααα’αΆααα·ααΆαα ααΌα αααα’αααααΆαααΉαα αΎαααΆ home folder αααααΆααα’αααααααΎααααΆαα root ααΆααααααΆααΆαααΈααΆαααα ααΎ /root path ααΌα ααααααααΆαα―αααΆαααΆαα½αααΉαααΎααα ααΎ/home partition ααα
mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome
αααααΆαααααααΆααα
α»αααααα ααΌαααΎα
αααααΆααααΎαααααααα½α /etc/fstab ααααααα»ααααααααααααα―αααΆααααααΆαα /home ααααΌαααΆααααααα
/dev/disk/by-label/nvme_home /home nilfs2 noatime 0 0
αααααΎα noatime
ααααΌαααΆαααΎααααΈαααααα’ααΆαα’αα»αααα ααΌα
αααα atime αα·αααααΆααααααΌαααΆαα½αααΉαααΆαα
αΌαααααΎα―αααΆαααΈαα½ααα αααααΆααααΎαα
αΆααααααΎαα‘αΎααα·αα
ααααααααααΌαααΆααα αααα»α NILFS2.
ααΌαααααααααΆαααααααΆαα’αααα―ααα·αααα·α
ααααααΆααα»αααααΌαααΆαααα α
ααΆ α
ααα»α
αααα½ααα·αα·ααα α¬α
ααα»α
ααααααααα
ααΌααααααααΆαααΆαααΈααΆααα»ααααααααααααααααα·ααααΌαααΆαααα α
ααΆ ααΌααααα½ααααααΉα αααααΆααααααααΆααααααΆααΌαααα
ααΆαααΎαα ααα»α αααα½ααα·αα·αααααααΌαααΆαααααΎαααααααΎααΆααααααααΆ lscp
ααΎαααΌααα lscp -s
ααΎαα’αΆα αααααΎαααΌααα αα·αα ααα»α αααα½ααα·αα·αααααααααα½αα―αααΆααααααααααααααααΎα
mkcp [-s] ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ
ααΎαααααΆααα·ααααααα‘αΎααα·αα
NILFS α’αα»ααααΆαα±ααααΎαααααααΌαααα αΆαααααΆα αααΎαααΆααααααΎαα ααααΆαααααααΆαα½αααΉαααΆαααααΎααΆαααΆαα½αααΆααΆ FS α ααααα ααα»ααααααΆααααα αααα»αααααα’αΆαααα»αααααα
α’αααΈααααααααΆαααααΌαααΆααααα αααΌα αααα ααα»αααα·ααααα½ααα·αα·αααααααααΆααα NILFS2 αααααΎαα’αΆα ααααΌαααΆααα»ααααααααααααααααα·αα αααααΆααααΆα (αα ααααααααα αααΆαα’ααα¬ααααα ααΆαα αααΆαα nilfs_cleanrd) ααΌα αααααα»ααααααα‘αΎα ααΎαααααΌααααααααα ααα»α αααα½ααα·αα·ααααα ααΆααΌααα α¬αα·ααΆαααΆααΆααΆαα»ααααΈ α αΆααααααΌαααα
chcp ss Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ°
αααααΆααβααβααΎαβα’αΆα βααα‘αΎαβααΌαβααβααΆβα§ααΆα αααβααΌα βαααα
mount -t nilfs2 -r -o cp=Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ° /dev/nvme/home /mnt/nilfs/Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ°
αααααΆααααΈαααααΎαα
ααααα―αααΆααααααΆαααααΆαα‘αΎααα·αααΈααΌααααα
/ ααααα
α αΎαααΆαααααααααΆαα ααΎααααααααααα·αα’αΆα
αα»αα
ααααΈααΌαααααα ααΌα
αααααα
αααα’ααΆαα α’ααααααααΌαααααΆααααααααααααααααα·α’αΆα
αα»ααα·ααααααα α½αααααααΆαα
chcp cp Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ°
α§αααααααααΎααααΆαααααααΆαα NILFS2
ααα»αααααααααΊααΆαααα αΆα ααΆα/α αΆαα ααΎαα’αΆα αααααΎαααααααααα―αααΆα ααααΆααααααΌαααα αααααααΆααΆαα’ααΈαααΊαα·α ααΎααααααΈααα ααα»α ααααα½ααααααα αααααΎα αα·ααα»ααα½αααΆα αααα αα nilfs2-utils αααααααΌααα»ααα»ααΆααα»αααα·α αα½α αααα»αα
α αΆααααΆααααΈ NTT ααΆαααΆαααααααααΆααααααααΌααα·αα·αααααααα½α ααΆαα·αααΆαα§αααααααααΎααααΆααααααα·αααΆαααΏααααα’αα»ααααΆαα±ααα’ααααααα αΆααααααααα·ααααΆαααααΆααααααΌαα―αααΆα α¬ααααΎα±ααααΆαααΆααα»αααααΆαααΆαααΌαααα
α§αααααααααΎααααΆαα n2u αααααααα»α
ααΎααααΈααααααααααααααααααααααα»αααΆαααααα
n2u log filename
ααααααααΊααΌα αααα
CHECKPOINT DATE TIME TYPE SIZE MODE
1787552 2019-11-24 22:08:00 first 7079 cp
1792659 2019-11-25 23:09:05 changed 7081 cp
ααΆααααΎαααΆααααΆααα αααααααΆαααα·ααΈααΆαααααα’αα»αααααααααΆαααααΎαααΎαα ααΆααααΎαααΆααα»αααααΆαααΆαα―αααΆααααααααΎαα·ααΈααΆααααα bisection ααα‘αΎααααΆαααΆαααα αα αα·αααΆαααααααααα―αααΆα/αααααα»αααΌαααααααααααααΆα
α’αααα’αΆα
ααααααα½αααααα»αααα·ααααα½ααα·αα·ααααααααααΎαα -cp CP1:CP2
α¬ -cp {YEAR-MM-DD}:{YEAR-MM-DD}
.
α’αααααα’αΆα ααΎαααΆααα»αααααΆαααΆαα ααα»α αααα½ααα·αα·ααααααααΆααα―αααΆα α¬ααααΆααααΆαααα½αα
n2u diff -r cp1:cp2 filename
α’αααα’αΆα αααα αΆαααΆααααααααα·ααααΆαααααΆααααααΌαααΆααααΌαα ααΆααα»αααααΆααΆααα’αααααΆαα ααα»α αααα½ααα·αα·αααααα―αααΆα/ααααΆααααΆαααα½αα
n2u blame [-r cp1:cp2] filename
α αααααααΆαααα·α αααααα αααα»αααΆααααααααΆαααααααααΌαααΆαααΆαααααααααα
ααΆαααααααα ααΆααα’αααα’αα·αααααα
ααΆαα’αααα―ααααααΆα αααΎααα ααΎ Habre α ααΌααααα αα NILFS2 α ααααΎβα±ααβααΆαβα ααααβ, ααααα·αβααΆαβαααβααΆαβααΆαβαα»αβααααΆβαααΆαβααΆααβαα ααβαααΆαβααΆαβααααααβ, reflink αα·αβααααβααα’βαααααβαααβ!
ααα ααααΈααα
ααααΆααα
ααααΉαααα·ααααααααααΆαα
ααΌαα’ααα»αα
- α’αααα’αα·αααααα NILFS2α Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi αα·α Satoshi Moriai α α’ααααα½αα ααααααααΆαααααααααααααΊα Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko α
- αα
ααΆαα Amblin Entertainment αα·α Universal Pictures αααααΆαααααααΈααααααΆαααααααα’ααα
αΆαααα
"αααααααα α’ααΆαα" . ααΌαααΆαααΈαα½αααααΆααααα ααααΊααα ααααΈααααααΆααααα "Back to the Future 3"α - αααα»αα αα»α
RUVDS αααααΆααααΆαααΆαααα αα·αα±ααΆαααΎααααΈααααααααααΆααα ααΎαααααααααα’ααααα ααΎ Habre α
PS ααΌαααααΎααα α»αααΆαα½ααααα’αααααααααααΆαααα αααα»αααΆαα―αααα αααα»ααααααΎααααααααααααααα»ααααααΆααααΏααααα
α’αααα’αΆα
αα·αααααααΆαα½α NILFS2 ααααααααΆαααΆαααΈααα·αααα·αααΈ
ααααα: www.habr.com