Date: Sun, 4 Oct 1998 18:02:24 +0200 (CEST) From: mingo@chiara.csoma.elte.hu To: linux-raid@vger.rutgers.edu Subject: RELEASE: alpha RAID-0,1,4,5 version 0.90, kernel 2.1.123/2.0.35 this is an alpha release of the latest RAID0145 drivers (and raidtools), for kernels 2.1.123 and 2.0.35. WARNING: this patch and the new raidtools contains various downwards incompatible changes. You will not be able to run arrays created with this release under older kernels. Neither will older arrays run upwards compatible, you first have to --upgrade with the new raidtools 0.90. Plus, a heavy rewrite has happened, and while i have extensively tested new and old features, i'd suggest people having no backups and valuable data in RAID1 and RAID5 arrays not to upgrade yet for a week or so. you can find raid0145-19981004-2.0.2.0.35.gz raid0145-19981004-2.1.2.1.123.gz raidtools-19981004-0.90.tar.gz in the usual alpha directory: http://linux.kernel.org/pub/linux/daemons/raid/alpha New features / Changes in this release: - YACR. (yet another complete rewrite) ==================================== The RAID code was overly dependent on static arrays, which made it much harder to support more exotic (dynamic) RAID features. Basically all of the code got rewritten to use doubly linked lists and all the base data structures got fixed up.. Several other things were rewritten too due to the 'hot-add/remove' features, this is why this release took two weeks to get out of the door. There is a new 'diskop' API between the base MD code and individual RAID personalities. Also i have wrapped all minor device number uses, thus it will be easier to move to more MD devices seemlessly. - full support for hot-add and hot-remove ======================================= two new commands were added to raidtools, raidhotadd and raidhotremove. Example usage: md1 : active raid5 sdc2[2] sdb2[0] sda2[1] 205312 blocks level 5, 32k chunk, algorithm 0 [3/3] [UUU] [root@hell /root]# raidhotadd /dev/md1 /dev/sda4 md1 : active raid5 sda4[3] sdc2[2] sdb2[0] sda2[1] 205312 blocks level 5, 32k chunk, algorithm 0 [3/3] [UUU] [the new disk has been added as a spare disk]. With these new commands a RAID array can be administered with zero downtime, across arbitrary number of disk failures + reconstruction passes. If an array is in degraded mode and a new spare gets hot-added, reconstruction starts immediately. Failed disks can be removed on the fly and new ones can be added back. - detection of device name changes ================================ this one was actually harder than it looks like, the RAID code now detects device name changes and runs arrays even if an SCSI disk fails and the system gets rebooted, and all disks shift down by one letter. It detects backwards shifts too. - RAID0 and linear now fully supports persistent superblocks ========================================================== the bugs reported by Stephen Tweedie got fixed, and full support for persistent superblocks has been added. A RAID0 array from now on refuses to run if a device is missing or a numbering irregularity gets detected. Just like any persistent RAID array, RAID0 can survive device name changes too. The raid0.c and linear.c code got rewritten, now it should be readable even for mortals ;) - cache_drop_behind() =================== reconstruction and resyncronization now does not anymore trash the buffer cache, but rather 'drops behind' all unused buffers. This improves overall performance during reconstruction alot. - 'estimated time to finish reconstruction' has been added to /proc/mdstat (suggested by Mike Black) - booting fix from Mark Anthony Lisher, 'halt' now stops RAID arrays. - modularity fixes, 2.0 should not work as modules too. - naming cleanup, all device names are now displayed symbolically. (eg. hda3 instead of 03:03) - internal disk numbers are now visible in /proc/mdstat too, this should ease administration. - failures in spares and failures during superblock operations and device size changes are properly detected and handled. - 'idle' IO time is now detected on a 'per physical unit' base, this speeds up parallel reconstruction alot. Only if the same physical disk is being used does the reconstruction go idle. - and many many more smaller fixes and improvements. As you might have noticed the 0.90 version numbers signals 'we are near to completion', the RAID code now pretty much supports all modern RAID features and enables 7/24 administration. If any feature you know of is missing, please speak up. [my TODO list is pretty much empty now, if i have not mentioned some important feature then i probably forgot about it, feel free to send me a request again ...] also, i think i have integrated all the patches floating around on linux-raid (and sent me personally), but please resend if i have missed something. enjoy. Reports, questions, comments, flames, feature-requests welcome, -- mingo