Age | Commit message (Collapse) | Author |
|
At least the built-in controller on sparc64 T4-2 machines supports 1E from
which OpenBSD boots just fine, but bioctl(8) reports it as RAID 10:
mpii0 at pci15 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi
mpii0: Solana On-Board, firmware 9.0.0.0 IR, MPI 2.0
scsibus1 at mpii0: 834 targets
sd0 at scsibus1 targ 0 lun 0: <LSI, Logical Volume, 3000> naa.600508e0000000006cd1dcd59022a30a
sd0: 713824MB, 512 bytes/sector, 1461911552 sectors
root on sd0a (efde5b2c6ab7b8ac.a) swap on sd0b dump on sd0b
# bioctl mpii0
Volume Status Size Device
mpii0 0 Online 748498714112 sd0 RAID10
0 Online 500107861504 0:2.0 noencl <ATA CT500MX500SSD1>
1 Online 500107861504 0:1.0 noencl <ATA CT500MX500SSD1>
2 Online 500107861504 0:0.0 noencl <ATA CT500MX500SSD1>
mpii(4) simply munged 1E into 10.
Report it as 0x1E just like softraid(4) RAID 1C is 0x1C internally:
# ./obj/bioctl mpii0 | grep RAID
mpii0 0 Online 748498714112 sd0 RAID1E
OK jsing
|
|
Only the RAID level itself with level specific values in the end differs.
OK jsing
|
|
-l takes chunks not specials; while here, simplify markup for optional parts.
Feedback OK jmc
|
|
Check for numeric levels before checking for single-character ones
("c" and "C") such that a) invalid synopsis (no "-l") is detected as such
# bioctl -c 10 vnd0 softraid0
bioctl: Invalid RAID level
# ./obj/bioctl -c 10 vnd0 softraid0
usage: bioctl ...
and b) ten is correctly treated as valid but unsupported level:
# bioctl -c 10 -l vnd0a softraid0
bioctl: Invalid RAID level
# ./obj/bioctl -c 10 -l vnd0a softraid0
bioctl: unsupported RAID level
Uppercase the abbreviation while here.
Feedback OK tb
|
|
Trailing characters in the option argument were ignored, such that
-cC1 (typo of -c1C) was interpreted as -cC instead of being rejected.
ok jsing@
|
|
The RAID1C discipline encrypts data like the CRYPTO discipline, and accepts
multiple chunks during creation and assembly like the RAID1 discipline.
To deal with failing disks a RAID1C volume may be assembled with a smaller
number of chunks than the volume was created with. The volume will then come
up in degraded state. If the volume is now detached and assembled again with
the correct number of chunks, any re-added chunks will require a rebuild.
Consequently, assembling RAID1C volumes requires careful attention to the
chunks passed via 'bioctl -l'. If a chunk is accidentally omitted from the
command line during volume assembly, then this chunk will need to be rebuilt.
At least one known-good chunk is required in order to assemble the volume.
Like CRYPTO, RAID1C supports passphrase and key-disk authentication.
Key-disk based volumes are assembled automatically if the key disk is present
while the system is booting up.
Unlike CRYPTO and RAID1, there is no boot support for RAID1C yet.
RAID1C largely reuses existing code of RAID1 and CRYPTO disciplines.
At present RAID1C's discipline-specific data structure is shared with that
of the CRYPTO discipline to allow re-use of existing CRYPTO code. A custom
RAID1C data structure would require CRYPTO code to access struct sr_crypto
via a pointer instead of via a member field of struct sr_discipline.
ok jsing@
|
|
Instead, use ".Ar chunk" for the -R option argument just like it is
already done for -l and -O.
While here, polish a few minor details in the vicinity of the word "device".
OK kn@
|
|
which was reverting a change made into 1.03
bioctl -d is "detaching" and not "deleting" a volume
|
|
1.
This increases the number of volumes that can be created on a single disk
from 7 to 15. i.e. a disk can be sliced into a maximum of 225
(15 * 15) filesystems instead of a mere 105 (7 * 15).
ok deraadt@
|
|
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.
|
|
at the end of void functions.
First one pointed out by Andrey Sokolov via bugs@
|
|
that there is only one softraid(4) controller (called softraid0), and
clarify that you cannot add or delete chunks, but merely replace them.
Tweaks and OK jsing@, and OK henning@ on a previous version.
|
|
the default.
okay millert@
|
|
|
|
bio status will never be updated on a BIOCLOCATE. In addition with
missed zeroing of the passed bio struct, this could lead to a print
of uninitialized memory. While there, properly zero the bio struct
before passing it to ioctl().
ok mikeb@
|
|
ok tb@ danj@ deraadt@
|
|
ok natano
|
|
|
|
bcrypt pbkdf, based on system performance. This is based on the bcrypt
autorounds code we have in libc.
Discussed with djm@ and tedu@.
|
|
ok jmc@
|
|
|
|
New volumes will be created with bcrypt PBKDF, however existing volumes
will continue to use PKCS5 PBKDF2 until a passphrase change is made.
If you're booting from softraid crypto, ensure that your boot loader has
been upgraded to a version that supports bcrypt prior to changing your
passphrase. Also be aware that once the passphrase has been changed, an
older version of bioctl(8) (one that does not support bcrypt PBKDF) will
not be able to "unlock" the volume.
Partly based on a diff from djm@.
|
|
Part of a diff from djm@
|
|
|
|
sr_crypto_pbkdf (since it is useable for more than just pkcs5_pbkdf2) and
embed a struct sr_crypto_genkdf within it, rather than redeclaring the same
fields. Rename SR_CRYPTOKDFT_PBKDF2 to SR_CRYPTOKDFT_PCKS5_PBKDF2 and add
SR_CRYPTOKDFT_BCRYPT_PBKDF for upcoming changes.
|
|
specified otherwise.
Part of a diff from halex@
|
|
derive_key_pkcs(), check the type and rounds in one place, unify the rounds
too small error.
|
|
new salt and respect the specified number of rounds.
Before changing your softraid crypto passphrase ensure that you are running
a kernel with r1.131 of softraid_crypto.c, otherwise the volume will become
unusable.
Same diff also from djm@ and halex@
|
|
ok benno millert
|
|
|
|
|
|
from kirill bychkov
|
|
* use .Cm for fixed argument strings
* properly use .Ar on individual arguments
* drop redundant .Bk
|
|
initial creation of a crypto volume
ok phessler
|
|
|
|
mfi(4). Based on FreeBSD, but done without mfiutil(8).
OK deraadt@
|
|
example)
ok florian jsing
|
|
The RAID 5 implementation has been largely rewritten during the last two
hackathons in Dunedin - it now needs further testing and usage.
|
|
|
|
Predefined strings are not very portable across troff implementations,
and they make the source much harder to read. Usually the intended
character can be written directly.
No output changes, except for two instances where the incorrect escape
was used in the first place.
tweaks + ok schwarze@
|
|
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)
|
|
of this tedu code.
|
|
the errno of an intervening cleanup operation like close/unlink/etc.
Diff from Doug Hogan (doug (at) acyclic.org)
|
|
|
|
discipline will more than likely eat data if a drive is lost.
Discussed with krw@
|
|
5 instead of RAID 4, assuming both were functional.
Discussed with krw@
|
|
|
|
Careful second audit by millert
|
|
|
|
can expose some of the kernel structures with split .h files if need be.
Discussed with various, including jsing.
|