I had that specific hdd 90% filled earlier, no problems, so I guess the max size *might* be 2 TB for SFS2 formatted devices, but there is no info I could look up.
What would the block size have to do with max partition size?
Since I cannot use NGFS due to it being held back for release for unknown reasons I'm stuck with SFS2 (which isn't a bad thing per se, just there doesn't seem to be much up-to-date information available nowadays)
I'd go with a 2 TB drive, but would like to know if larger size will/can work?
o Supports partitions of up to 128 GB (DOSType 'SFS\0', for 'SFS\2' partitions the limit is 1 TB, but it can be more depending on the blocksize, with 32KB/Block it's 64 TB).
That could be wrong and the actual limits are 2 TB (512 bytes/block) - 128 TB (32 KB/block) instead. Maybe I've used 1-64 TB in the docs because I wasn't 100% sure there are no signed data types/calculations left in the SFS sources. But I never had such a large HD, i.e. it's untested in either case.
Quote:
What would the block size have to do with max partition size?
File systems use block numbers to access the data, if a block is 512 bytes a 32 bit block number can access 2^32 blocks * 512 bytes = 2 TB, with 1024 bytes/block it's 2^32 * 1024 = 4 TB, ..., with 32768 bytes/block 128 TB.
Quote:
I'd go with a 2 TB drive, but would like to know if larger size will/can work?
Even if the 1 TB partition size limit is correct you could simply use 2 1 TB partitions, or 4 512 GB partitions, etc. The HD size is limited by the AmigaOS device API to 16 EB (= 16384 PB = 16777216 TB ... = 2^64 bytes).
Does it make any difference speed-wise (access, i/o) if i'd adapt the block size depending on the maximum partition size used?
If diskcache.library is used: No. Even without diskcache.library SFS still has it's old, internal cache system which is used instead, but that's using smaller cache line sizes and much less memory for the caches and there may be a difference if 16 or 32 KB bytes/block are used for reads/writes from/to files, but OTOH using such large blocks will slow down other parts of SFS a lot, and with large block sizes small directories, files, etc. will use much more disk space.
Quote:
And do block sizes impact on ram usage to manage those partitions or is that only with the size of used buffers?
There is only a difference for the buffers. You set the number of buffers in MediaToolBox. 1 buffer = 1 meta data block (directory blocks, bitmap blocks, trees, etc.). Buffers aren't used for the data blocks of files. For example if you use 5000 buffers on a 512 bytes/block partition that's 2.44 MB RAM (5000*512), if you use 5000 buffers on a 4 KB/block partition it's 19.53 MB RAM (5000*4096).
Quote:
And finally, do buffers still impact on access speed with SSDs or just mechanical HDDs?
Keeping often used blocks in RAM is always faster than having to reread them several times from a device again, even with the very fast nvme.device on a X5000 using memcpy() from a RAM buffer is still faster than (re)reading it from the device for the small transfers used for meta data blocks.
I cannot change the "Logical size" in RDB/disk geometry...its set to 512 block size.
I don't know anything about the Sam460, X1000, X5000 and A1222 drivers, but the old ones from sg2 (a1ide, peg2ide, Sam440 and the PCI PATA, SATA and SCSI ones) don't support anything other than 512 bytes/sector for HDs.
Quote:
Funny enough, both Media Toolbox and Format report 5569GB, but as soon as the drive is formatted its getting capped.
How do you check the size? C:Info, Workbench, etc. may not support displaying the size correctly for partitions > 4 TB as they would have to do some workarounds themselves, FileSystems can't return correct sizes > 4 TB for 512 bytes/block partitions because in functions like IDOS->GetDiskInfo() id_NumBlocks is 32 bit.
Try if using two 3 TB partitions display the correct size.
Another option might be to use a single 6 TB SFS\2 partition with 1024 bytes/block, but using 2 3 TB partitions with 512 bytes/block is better.
There is disk physical block size which you cannot change in the drive geometry window. Because this a property of the disk itself. And Media Toolbox only support 512 bytes anyways.
But you can change the filesystem blocksize when you create a partition.
All of the AmigaOS4 tools seem to show the correct size (5589GB is the correct one, btw) but as soon as the disk was formatted its being capped. It looks like the problem is still with the fs(?)
And I did exactly that, a full hdd partition (5589GB) with 512, 1024 and 2048 blocks, none will go beyond 1.5 TB
I'll try the two 3TB partition tomorrow, but I don't think it make a difference.
BTW the info part of mediatoolbox shows a -999999999 at sectors I think it was...calculation error, probably a buffer overrun
Trackdisk64 standard allows you to access a 64bit address range.
An SSD/HDD is not address with bytes but with logic blocks. This logic block size is traditionally 512 bytes. So instead of writing an amount of bytes starting at a certain address, you write an amount of logic blocks starting at a certain block number. This means that the file system needs to address the SSD/HDD and transfer data in multiples of logic blocks. This is called logical block addressing (LBA). A Nvme drive can address 64bit of those LBAs meaning a theoretical maximum storage size of 64+9=73bit in case of a 512 block size.
Now the file system itself can use a different block size as data container to organize the storage size of a partition. The only restriction here is that the file system block size must be a multiple of the SSD/HDD LBA size. Larger containers are more efficient from a transfer speed point of view. But will also lead to more waste of storage because you get more containers that are not fully occupied with valid data.
Trackdisk64 might be able to address a 64bit address space. Bit apparently the SFS2 partition size is addressed with 32bit. 32bit with a file system block size of 512 bytes results in a maximum partition size of 41bit (=2TB). A block size of 1024 bytes results in a limit of 4TB and so on.
Modern sata drives and Nvme drives might also support logical blocks of different sizes. For example 4096 bytes. I actually have a Nvme drive which allows me select 4096 bytes LBA. But unfortunately Media Toolbox doesn't allow me to create partitions in that case. Because it does not support any other LBA size then 512 bytes.
The size that Media Toolbox shows you is reported by the driver. That's simply amount of LBAs x LBA size. The partition size limit could be the result of another unknown limit inside Media Toolbox.
Splitting the disk into two 3 TB partitions (SFS/2) both partitions cap at 746,5 GB (half of the 1.5 TB if i use the whole disk).
It seems as if Media Toolbox(?) or SFS(?) is doing the housekeeping for the whole disk instead of the seperate partitions(?) capping everything from the same disk at 2 TB(?)
nb: i have one other big hdd at 1.8 TB and this disk is completely used (probably because it's still flying below the 2 TB barrier)
Any more ideas? Or can i scrap the idea of using the whole disk (anytime close/ever) under AmigaOS4?
There's no conclusive evidence yet which part of the system is to blame. It can be the filesystem, Media Toolbox or even the driver.
Unfortunately I do not have such a large drive available for testing (yet).
Nevertheless, the Media Toolbox should be fixed to support > 512 LBA size.
Edit: The "disk full"error after formatting happens when there has been write errors to the file system administration on disk. Happened to me as well while developing the NVMe driver
Edited by geennaam on 2023/10/3 12:17:34 Edited by geennaam on 2023/10/3 12:21:34
I don't think i will live long enough to see anything getting released regarding Hyperion based AmigaOS4 stuff outside the beta cloud (apart from *years* apart updates)