Originally posted by oiaohm
View Post
No filesystem was designed with SMR in mind. The closest one is APFS that was designed for SSD.
In ZFS when you write a block it updates the pointers on every block in the tree from leaf to root. it does this to maintain consistency and integrity and provide it's atomic transactions.
Other file systems use the much older method of block pointer tables with extents. It's a very old design you can't pass this off as new, sorry.. They do not provide atomic transactions and can not prove their consistency on disk. In SMR you are allowing the firmware to rewrite the data for every track above the track you're writing. Thus if you do this you now have introduced another failure condition (one that is blind to the OS), added a lot more writes and iops, and you have NO WAY to prove your on disk consistency. What happens if you get a phantom write? If you have them in an array.. how does the array know what side of the mirror is correct? It doesn't. Also when was the last time you tested your UPS? Just wondering..
The difference between SSD's behavior in bank leveling and SMR's is that SSD's firmware don't do it all the time. When they do do it they are much faster at doing it and at least in ZFS's case, you can tell if it did it correctly.
True they provide about 25% more space, but does the reliability issues now warrant a hot backup on premise? Because that takes 100% more space.
So be my guest if you want to use SMR.. as a storage expert I do not recommend it.
Comment