VRAID v. 2.3 (1/3/2001, Vitus Jensen) |
Readme/What's new |
-*- Mode: indented-text -*-
--- $Id: raid.doc,v 1.2 1998/10/07 23:17:42 vitus Stab $
WHAT IS RAID?
RAID (redundant array of inexpensive disks) is the name of some
standards to increase the security of the disk subsystem. Those
standards were first published by Gibson, Katz and Patterson in
1987. The idea of RAID is to use several disks to build a fast,
errorprone subsystem. Usuallay this is done by a special SCSI
controller but the possibility of software RAID exists, too.
Currently the following RAID levels are commonly available:
RAID Description Checksum data disks + chksum disks
------------------------------------------------------------------
- Chaining none 2+
0 Striping none 2+ -
1 Mirroring none 1+ 1
2 Stripe Set Hamming Code 2+ 1
3 Stripe Set XOR 2+ 1
4 Striping XOR 2+ 1
5 Striping, distributed XOR 2+ 1
Besides these 'official' RAID levels 0-5 may vendor-unique levels
exist, for example Mylex RAID 6 (combination of RAID 0 and 1) und
7, Siemens RAID 7 and many more. Every vendor has his standards
and most standards are different from standards used by other
vendors.
RAID 0 - Striping
Using two of more disks data is written alternating to all disks.
Transfer rate is usually much higher as a single disk. Access
time remains the same. RAID 0 is no real RAID as it doesn't
provide redundancy. Danger of data loss is greater than a single
disk as with a loss of a single disk the whole subsystem is
worthless. You don't need a controller to implement RAID 0, this
can by done by a piece of software. This isn't a real
professional solution but may nevertheless increase data
throughput.
RAID 1 - Mirroring
A simple way to increase data security: write all data to two or
more disks. So all disks contains exactly the same data.
Disadvantage of this very simple solution: 50 or more percent more
room for your data and --- in case of two disks --- in case both
disks report different data (write error): which disk is correct?
Some vendors name disk mirroring as disk duplexing of two or more
controller are involved. Even in case a controller fails there is
redundancy. To increase data security RAID 1 is often combined
with some other RAID level.
RAID 2 - Stripe Set
Similar to RAID 0 all data is distributed to two or more disks.
But an additional disk is used to write a hamming code. A hamming
code detects errors and may repair smaller errors. Because a
seperate disk is used to store the hamming code RAID 2 is slow.
And because modern disks use a kind of error correction code by
themself RAID 2 is now obsolete.
RAID 3 - Stripe Set
A performance-optimized aternative to RAID2. It's working on a
stripe set and write errorcorrecting to a seperate disk, too. The
difference is that a XOR-operations is used as the errorcorrecting
code. When a disk fails it's contents may be calculated from the
data of all other disks. There is no dataloss. RAID3 is fast but
it's speed is reduced by transfering small, non-continuous blocks.
Good for large transfer sizes.
RAID 4 - Sector Striping
RAID 4 does striping on basis of sector instead of bytes as RAID 3
does. There is also a seperate disk with checksum calculated by
XOR-operations. Because this seperate disk is a bottle-neck RAID
4 isn't as fast as expected, at least when writing or in case of a
disk failure (you don't need the XOR-values when reading).
RAID 5 - Sector Stripng, Distributed Checksums
This RAID level combines features from RAID 0, 3 and 4. Data is
striped in sector-sized units on several (at least three) disks.
Error correction is achieved by using XOR-operations. The
calculated checksum isn't saved on a seperate disk but distributed
along with the data sectors. Therefore there is no single disk
acting as a bottle-neck. RAID 5 combines high security and good
performance and is used for this reasons. Because the
XOR-operation over large amounts of data is still something to
take it's time RAID 5 is often implemented as hardware RAID with a
special controller using a seperate unit to calculate it.
Besides allowing to continue working with a failed disk RAID
features some additional techniques to restructure redundancy
after a failure:
Hot Swapping
Change a disk while keeping the machine up to replace a failed
device. The failed device is stopped, changed and a replacement
is automatically setup and filled to contain the data once stored
on the failed device. There is no need to shutdown a running
server. Be aware that hot swaaping need special connectors to
avoid electrical damage.
Hot Standby
Add an additional disk to the system which is used to replace a
failed device without sysop interaction. Until it is needed the
disk is stopped.
Reference
Translated from german HDDFAQ (copright: PC POWER GmbH, Holger
Ehlers@2:241/1050 aka 2:241/1020.20), available from 2:2474/424 as
hddfaq.zip). |
hobbes.nmsu.edu/download/pub/os2/system/drivers/storage/vraid23.zip |
|
Key Generator for VRAID v. 2.3 (, Vitus Jensen) |
Readme/What's new |
The development of VRAID effectively stopped in 2001 however every once in a while someone comes around and asks for a key. This archives contains an OS/2 exe to create your own key (as in: genkey.exe 2 "George Clooney") and the sourcecode of the generator. Complete sourcecode of all my OS/2 drivers is available at Netlabs. |
hobbes.nmsu.edu/download/pub/os2/system/drivers/storage/vraid-genkey.zip |
|
Source code drive v. 2.3 (, Vitus Jensen) |
Readme/What's new |
-= Some notes about the sourcecode for my OS/2 drivers =-
1. DRIVERS
1.1. dbuffer
Filter driver doing double buffering like used by AHA154X.ADD
/DBUFFER. Those ISA busmasters could only address 16 MByte and
dbuffer was designed to those controllers usable in systems with
more RAM. Never released.
1.2. mini
Sourcecode for a minimal driver. Used to test features (or find
missing features) of the OS/2 kernel. Just playground.
1.3. perf
Filter driver to modify SCSI mode pages during system mode. Most
notable write cache and tag queue reordering. This driver was
released two times to the general public as Public Domain.
scsiopt.doc contains instructions how to compile this code and
which tools and compiler versions are needed/supported. That text
can be applied to all of my drivers, they all use the same
tools/compilers (best supported are Microsoft C/C++ 7.0 and DMake
4.0).
1.3.1. RCS tags
None :-( There should have been some as the driver was released
but unfortunately I forgot to do this.
See scsiopt.history for histoy.
1.4. sleep
A driver to stop SCSI disks when they weren't accessed for some
time and to automatically restart them on next access. Released
as shareware, free for private use.
1.4.1 RCS tags
Some. See dsksleep.history for all released versions, RCS tags
directly relate to them:
DSLEEPv0_98 dsksleep 0.98
DSLEEPv0_95 dsksleep 0.95
DSLEEPv0_93 etc
DSLEEPv0_92
DSLEEPv0_91
DSLEEPv0_80
DSLEEPv0_70
DSLEEPv0_60
There are some changes after DSLEEPv0_98 but those are only
related to DDK changes, nothing functionally. The latest
sourcecode revision is compilable.
1.5. raid
vraid, software raid for OS/2. Implements RAID 0, 1 and chaining
as a Filter Driver. The latest sourcecode is not buildable as it
contains very incomplete work to add RAID 5. Maybe reading an
exiting array in non-error mode would work but there is no build
(easy: just write), error state or fault state support.
To compile you have to checkout a tagged version, here are tags:
vrflt031113 fix released 13/11-2003
vrflt010903 fix released 03/09-2001
PREV010803
VRAIDv0_85
VRAIDv0_84 published in VRAID23.ZIP
VRAIDv0_82 published in VRAID22.ZIP
VRAIDv0_70
VRAIDv0_60
VRAIDv0_51
VRAIDv0_50
VRAIDv0_40
VRAIDv0_30
ALPHA1
1.6. raid/doc
IPF sourcecode for online documentation. Needs ipfpp.exe and
ipfc.exe. There are some internal docs, too. The online
documentation cotains list which driver and setup program were
published together.
VRAID_REL23 published in VRAID23.ZIP
REL22 published in VRAID22.ZIP
VRAIDv0_70
VRAIDv0_60
VRAIDv0_51
VRAIDv0_50
VRAIDv0_40
VRAIDv0_30
ALPHA1
1.7. raid/Setup
Graphical setup program to create or administrate arrays. Write
in C++ directly to the Presentation Manager API. The latest
sourcecode should not be used as it contains (possible incomplete)
changes for RAID 5. Try one of those tags:
VSETUPv0_84
VSETUP_82
VSETUPv0_80
VSETUPv0_71
VSETUPv0_70
VSETUPv0_60
VSETUPv0_52
VSETUPv0_51
VSETUPv0_50
VSETUPv0_20
2. Support
... None. Well, I will try to answer questions raised about the
sourcecode but would prefer to do this in a public manner,
searchable by google etc. This rules out private messages. I
hate web forums, so don't ask about commtalk or similar. The best
solution for me would be usenet, comp.os.os2.setup.storage is
pretty low in traffik so this could be the place.
3. LAYOUT
Sourceode uses TABs, a TAB being the move to the next tabstop,
tabstops are 0 8 16 24 and so on. Just like any console would
display the text (type file.c)
If you want to preserve the layout and are using emacs you could
use the following snippet. It's not totally correct as "case"
labels should be positioned like normal "goto" labels, 2 left
from labelled code but I never got around to fix whatever emacs
19.26 changed in that compartment.
; --- I prefer a certain style in all C dialects (C, C++, Obj-C). Similar
; --- to Stroustrups but more like Emacs 19.25...
; --- cc-mode.el version
(defun my-c-mode-common-hook ()
(c-set-style "stroustrup") ; bsd | stroustrup | whitesmith
;; other customizations can go here
; (c-set-offset 'case-label '*)
; (c-set-offset 'statement-case-intro '*)
; (c-set-offset 'label '*)
(setq comment-column 48)
(setq c-tab-always-indent nil)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
(setq c-electric-pound-behavior '(alignleft)) |
ftp.netlabs.org/pub/vraid/vjensen_driver.tar.bz2 |
|
Source code lib v. 2.3 (, Vitus Jensen) |
|
|
ftp.netlabs.org/pub/vraid/vjensen_lib.tar.bz2 |
|
VRAID.FLT v. 2.3 (, Vitus Jensen) |
Readme/What's new |
Updated VRAID.FLT for VRAID23.ZIP package. Faster rebuild and array sizes above 64GB.
The development of VRAID effectively stopped in 2001 however some small changes were
done later and are included here. |
hobbes.nmsu.edu/download/pub/os2/system/drivers/storage/vrflt031113.zip |
|
VRAID.FLT v. 2.3 (, Vitus Jensen) |
Readme/What's new |
Updated VRAID.FLT for VRAID23.ZIP package. Faster rebuild and array sizes up to 502GB. The development of VRAID effectively stopped in 2001 however twice some small changes were done later. This version of the driver is the last version given out (in 2005). I found no feedback fom anyone whether it works and there is a note that it is (the disk layout I presume) not compatible with older versions, so only use it if you desparately need larger arrays. |
hobbes.nmsu.edu/download/pub/os2/system/drivers/storage/vrflt050608.zip |
|
Aggiungi un commento