Mit Solaris 9 8/03 (SPARC 64-bit) wurde für UFS ein Filesystem Limit von 16 TB eingeführt (vorher 1 TB). Die Einschränkung auf 64-bit SPARC Systeme wurde mit Solaris 10 auf 64-bit X86 Systeme erweitert. Das Root-FS darf jedoch die Größe von 1 TB weiterhin nicht überschreiten. Für alle Benutzer eines älteren Solaris-Standes ist es nicht zu empfehlen, Disk-Devices dieser Größe einzusetzen! Da im professionellen Rechenzentrum die Kapazitäten aber schon lange in Bereiche jenseits der TB-Grenze gehen, wollte OSL testen, wie sich diese LUNs/Volumes im täglichen Umgang "anfühlen" und wie lange typische Tätigkeiten (wie newfs, fsck) für Volumes dieser Größe dauern.
Zu diesem Zweck wurde ein LUN mit ca. 5 TB auf einem RAID-System erstellt und mittels OSL Storage Cluster (ab Load 39) für Solaris verfügbar gemacht. Als Testbetriebssystem wurde Solaris 10 Update 2 X86 verwendet. Der Host ist eine SunFire X2200 M2. Das VTOC der Platte (ohne Filesystem) wurde ausgelesen:
# prtvtoc /dev/rdsk/c4t207000C0FF0A5ECFd0s0 * /dev/rdsk/c4t207000C0FF0A5ECFd0s0 partition map * * Dimensions: * 512 bytes/sector * 10744142463 sectors * 4001724 accessible sectors * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 1 15 01 34 3985339 3985372 8 11 00 3985373 16384 4001756
Die Größe der LUN ist mit 10744142463 Sektoren (512 Byte/Sektor) angegeben. Das entspricht also genau 5 TB.
Dieses Volume wurde als OSL Physical Volume initialisiert, um dann ein Application Volume darauf zu erstellen. Darauf wurde dann ein "newfs
" abgesetzt und mit "time
" die Zeit gestoppt.
# time newfs /dev/av0/rbla newfs: /dev/av0/rbla last mounted as /mnt newfs: construct a new file system /dev/av0/rbla: (y/n)? y Warning: 2048 sector(s) in last cylinder unallocated /dev/av0/rbla: 10737418240 sectors in 1747627 cylinders of 48 tracks, 128 sectors 5242880.0MB in 12222 cyl groups (143 c/g, 429.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792, 7908512, Initializing cylinder groups: ............................................................................... ............................................................................... ............................................................................... ....... super-block backups for last 10 cylinder groups at: 10729372192, 10730250912, 10731129632, 10732008352, 10732887072, 10733765792, 10734644512, 10735523232, 10736401952, 10737280672 real 2m14.837s user 0m18.598s sys 0m0.720s
Das Anlegen des Filesystems hat etwa 2 Minuten und 15 Sekunden gedauert. Als nächster Schritt wurden diverse Dateien (gemischt groß und klein) in das gemountete Filesystem hineinkopiert. Dann wurde ein Filesystem-Check mit "fsck
" angestoßen und wieder mit "time
" die Zeit gemessen. Etwa 52 % des Volumes waren mit diesen Dateien ausgenutzt.
# time fsck -y /dev/av0/rbla ** /dev/av0/rbla ** Last Mounted on /mnt ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3a - Check Connectivity ** Phase 3b - Verify Shadows/ACLs ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cylinder Groups 2172458 files, 345636535 used, 325529890 free (0 frags, 325529890 blocks, 0.0% fragmentation) real 55m22.34s user 2m3.41s sys 0m13.55s
Der Filesystem Check dauerte ca. 55 Minuten bei etwa 2 Millionen Files. Nun wurden 5 große Files (7 % genutzt) auf das gemountete Volume gespielt und wieder ein "fsck
" abgesetzt:
# time fsck -y /dev/av0/rbla ** /dev/av0/rbla ** Last Mounted on /mnt ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3a - Check Connectivity ** Phase 3b - Verify Shadows/ACLs ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cylinder Groups FILE SYSTEM STATE IN SUPERBLOCK IS WRONG; FIX? yes 7 files, 41282247 used, 629910130 free (0 frags, 629910130 blocks, 0.0% fragmentation) real 8m39.90s user 2m56.19s sys 0m2.06s
Diesmal wurden 8 Minuten und 40 Sekunden für den "fsck
" benötigt.
Die Benutzung von extra großen Volumes (größer als 2 TB) ist mit Solaris 64-bit kein Problem. Es sollte jedoch darauf geachtet werden, dass das System unter Solaris 10 läuft, um eventuell noch vorhandene Probleme mit Solaris 9 zu umgehen. Solaris 8 oder Solaris 7 sollten bei diesen Volumegrößen nicht benutzt werden, da UFS bei diesen Versionen noch auf 1 TB limitiert ist.
Unter Solaris 10 64-bit ist das Handling wie bei kleineren Volumes völlig unkompliziert. Die Geschwindigkeit des "newfs
" ist mit etwa 2 Minuten bei einer 5 TB LUN im erträglichen Bereich. Ein "fsck
" kann bei vielen Files schon mehrere Stunden in Anspruch nehmen, dies ist aber aufgrund der auftretenden Häufigkeit solcher Aufgaben in Ordnung, so dass dieser Punkt nicht störend ins Gewicht fällt.