Recently, Eduard Shishkin contacted me and asked to publish an interview (which I am happy to do) in a question-answer format.
The first interview (2010) can be found here .
- To begin with, please remind the readers where and with whom you work.
I work as Principal Storage Architect at Huawei Technologies, German Research Center. In the virtualization department, I deal with various aspects of data storage. My activity is not related to a specific operating system.
- Are you committing to mainline now?
, . , , 9p ( - VirtFS). : , , , " ", . , - , . , - - .
β , , , . (, , ) -, ? , , -, ?
- . - , , , , " ", , . Computer science, , . - 2x2 , 4, "Linux way", , . , . , . , , . , " ". - . , , - .
β Btrfs? ? β Β« Β» ?
. , 11 , . Btrfs, , - . , , . - . , . ( Linux 5.12). , , . . . - 50% ( 15%). - " ". 4 . : , ( 85%) - . , , , (, ), . , , 15% "" , , , . Btrfs ( , .), , ( "" , ) - .
( ). : Btrfs B-, . , "" , . , "" . "". , . Btrfs B-, .. Btrfs. 8-10 , " ", ( ) "Linux way". , , . . , 10 . , . " ", , "- ". "" . B- - , , !
Btrfs? , , . - , " ", c Btrfs . , , , , 30 . - Btrfs .
, , . . . , .
β Btrfs RHEL.
, . "technology preview". , "preview". ! by-design . RHEL - , - . Red Hat , Btrfs. : , , , , , . ? . Red Hat , . , , DoS-, Btrfs. , ? , GPL, , , : " !" Red Hat, , ! , Red Hat- , QA-, .
β Btrfs -?
, "" . - , . , GNU/Linux - RHEL. , , , . , , - , ( ""). , .. . , - .
, - , Facebook Btrfs . , .
β XFS? β , ext4 . Red Hat' XFS? β ext4 XFS?
, . , Red Hat. , : - . XFS ext4. . , - . , . ext4 XFS . , . . , , , . - , (", , !").
β layer violation ( ) ext4, F2FS ( RAID Btrfs)?
, - - , - . , "", , , block layer. "" . : , . , , block layer, . . , "" (bit rot). , -, .. , (, bitmap-, - .), kernel panic. , , block layer (.. RAID 1) . , : - ? , , . ( , ) -. . (, ) - . "" . layering violation - - . - RAID-5 . ( RAID / LVM ) . , layering violation " " . - , , .
Reiser4 "". , , , , , , (VFS).
β ReiserFS v3.6 , , JFS? . ?
, . , ( , ) - . , JFS ( ), ReiserFS (v3) ( ). , , , . , , , . " " . , , , . -. , ReserFS v3 Reiser4, .
β Tux3 HAMMER/HAMMER2 ( DragonFly BSD)?
, . Tux3 - (.. " "), Reiser4 , , . (snapshots) , Reiser4 . , "" , , B-. . , Reiser4, "" - , .
HAMMER: . . , B-. . .
β CephFS/GlusterFS/etc? ?
, . . , - . . , - , . - , " " " ", , : ", !". , . , , . . "Big Data" , , , ..
β , , ?
, . , , - " ". , . . page cache . " " . . IO-forwarding () . (server node) . ( , , ). , server node backend storage - (.. , ) . , , "" "" . - , (- ). . , ( -). backend storage , . (SSD, NVRAM .), " " , , . . , , 9p- QEMU - VirtFS. , , , . - . - . , GlusterFS . , NetBSD.
β ?
, , , , - . , , 4 , : , , , . , , , - (, ).
. -, . .. "" " ", LVM ( layering violation, ZFS). , ( ) (.. , -). , ( ), block layer , "" . , , , . : , . ZFS- ( LVM) ( , ..). ! , ( , ), , . . , - , . , ! , - . , - , , ! , , , / . -, , , .
, +LVM , . , , . , - . discard-, - , .. . , LVM, . , - . . . , ?
.. "Write-Anywhere" ( Reiser4, ). . , . , - . , . , - . , , . , "broken design". , . , . . , . ( , ). ( GlusterFS). - (fsck). , . , .
, (snapshots). LVM ZFS- , . . A ( / ) . . , , 100 , S . , S. : S? , , 100, 3 - A, B C, , (A B). C , C , , , C A B. , , S C . , , () ( ) c (, "" ). , - . : - , ? ! , . "3D-" , .
, - , ( -). , , , . +LVM : LVM , , ( ). LVM +LVM , - , . ZFS Btrfs, , - , layering violation ., ? , LVM. , (storage nodes). , . - DHT GlusterFS CRUSH map Ceph. , , . . 2015 , -, , . , . . , . , ? , , " " . - , . .
β (, blk-mq) ?
. , block layer, . . , block layer, ( reiser4 ).
β (, SMR, SSD) ?
. . . , , - . , - , . , , "".
β Reiser4 ?
, , . Reiser4 . " " - . " - !" - , . - , , , . , . "", "" , , .
β - Reiser4?
, , .. . , . , 30 , .
β Reiser4 ?
"" (resize) , ReiserFS(v3). , DIRECT_IO. , " ", , . , " ". , , ( ). Reiser4 - RAID-Z, , , 128- , .
β , , ?
(), , . , , . , - , instruction pointer, , X, , . "", , X ( X, ). , ( ), , "" - . - , , , . , , "" , . , . , " " . (, ).
β β Reiser4 ? , ? ?
, . , . - . , "" . . , , - . - ( , ). , - , . " " .
, , . , , - . - - . - , , . ? , - .
β Reiser4 ?
, , . , "" . , . , Reiser4 - : -.
, , - . Reiser4 -. . , (snapshots) - "OVERWRITE SET". Reiser4 . (Write-Anywhere) OVERWRITE SET ( ..), "" ( ). . OVERWRITE SET ( , ). , Reiser4 . ReiserFS (v3). , . ( ..), . Reiser4 , , , .
"" " ( ). - Reiser4 -. , ZFS Btrfs : . "" , . "".
, , , , ZFS, Btrfs, block layer, FS+LVM - , O(1)- , . . "" . , , , , , fsync(2). , block layer, bcache, . ( ). , , .. - - .
10. , , - "" -, reiser4. "format41".
β Reiser4 xfstests?
, , .
β Reiser4 () ?
, ! , ! backend storage, . . block layer, - ! , - . , , . ( .). -, , - . . !
β Reiser4 Linux' , FreeBSD ( : Β«β¦FreeBSD β¦ β¦ , Β»)?
, , : Reiser4 - . FreeBSD ! ! c , FreeBSD. : - , .
β Linux ? «»?
. . . - , - . . , , : .
β - ? , -, ?
, . . . . . . "", "" . "Btrfs" , . . . "", " ". , , . : , . ! "", "" - Btrfs systemd, docker, .. - .
- . Reiser4 . (, ) . - VFS, XFS ext4. VFS, , . VFS . Ext4 , , , . , - . , Linux, , - , ( , , , B-, ). . , , "". , "" , , "" , . , , . , - ZFS , . , , : - , . , - ZFS , , , ZFS : . ZFS - . ext4 XFS - .
"Linux file system of next generation". , , , " " Linux . , Linux "just for fun". . , . , , "" , - : , - , "". , . , - , ! : , , "": " ", .. , , "" , .. , " ": , ", .. . , - , "" . - , . . - . . , . .
, " " - , . Btrfs "" Bcachefs, Linux block layer ( ). : , Btrfs. , - - ! Bcachefs Btrfs, , , . " ". , . "" ( ). , , . "" , , "" , . . , , , -: , . , , .
, " ". , - . , , , "" . , - , . , , - . , . , , . . -. , (", "), . . . , , , . , : " " . , Linux VFS. , , , , , . . , 29- , " ". . !