https://openzfs.github.io/openzfs-docs/Basic%20Concepts/VDEVs.html
ZFSda virtual device degan narsa bor VDEV. Agar VDEVga yaxshilab qarasa bu Object storage bilan deyarli birxil narsa. Faqat local!
Bizda ZIO ham bor yani ZFS scheduler, bu narsa read/write operationsni sync qilish uchun ishlaydi. Undan ham qiziq tomoni ZIOda async write scheduling degan narsa bor.
S3 based on ZFS
Bu yerda asosiy yutuq ZFS backend tayyorligida bizga raw blocklar uchun backend kerak emas bu narsa uje zfsda mavjud.
Ho'sh zfsda nimalar bor ?
Compression - LZ4 or Zlip native.
Bucket isolation -
zfs create objectstore/bucket/test1 Caching - ARC aynan ram adapdive va undan tashqari L2ARC ham bor. Bu narsa aynan VDEV yordamida metadata va small object blocklar saqlashga juda zor.
Snapshots/backup - zfs snapshot va olg'a!
OPS - zpool iostat, zpool status etc
ZFS tayyor s3 yoki block storage engine bo'la oladi.
Endi scaling perespektivasida raftni moslab ko'rish kerak. Bu biroz nozikroq lekin o'ylab ko'rsa bo'ladi.
Undan tashqari yana bir prikol bor. Masalan object sotrageda
/x/y/z.txt bu path flat bo'ladi yani shunchaki x/y/z.txt degan key bilan saqlangan object. Lekin filesystemda unday emas bu flat namespace vs directory tree problemga olib keladi. Albatta bu narsani boshqacharoq uslubda design qilsa bo'ladi maslan hashing.Shunchaki prototip uchun object CRUD va bucket operations qilib ko'rish kerak.