1 |
Duncan wrote: |
2 |
|
3 |
> |
4 |
>> Duncan wrote: |
5 |
>> |
6 |
>> |
7 |
>> |
8 |
>>> Did you try md-mod,start_dirty_degraded=1 (AFAIK this applies to |
9 |
>>> RAID-4/5/6 only)? |
10 |
>>> |
11 |
>>> |
12 |
>> No |
13 |
>> |
14 |
> |
15 |
> Hmm, and you said RAID-5, right? |
16 |
> |
17 |
> |
18 |
Yes. I tried now to boot without initramfs and it works- with and |
19 |
without that "md-mod,start_dirty_degraded=1" option. |
20 |
But this is now. Will it continue to do so, remains to be seen. But no |
21 |
matter what, initramfs remains a keeper for me. |
22 |
|
23 |
BTW: Where is this mod-module name way of setting inbuilt module |
24 |
variables documented ? |
25 |
I have uvesafb built-in as part of kernel and had to check the sources ( |
26 |
documentation was out of date at some point ) to coem up with command |
27 |
line setting, like "uvesafb.mode_option=1280x1024-16@60 uvesafb.mtrr=3". |
28 |
|
29 |
Could I also write "md.start_dirty_degraded=1" ? |
30 |
|
31 |
|
32 |
|
33 |
> I think one of the reasons I may have never had to use that option on |
34 |
> RAID-6 is that it has two-way parity, so chances are either one or the |
35 |
> other will still be valid -- even if it crashes in the middle of a write, |
36 |
> one stripe-write might be invalid, but as long as I wasn't already |
37 |
> running degraded, the state on the others should be clean, either clean- |
38 |
> state from before the write, or clean-state from after the write, thus |
39 |
> ensuring data integrity. Naturally, due to hardware cache buffers, etc, |
40 |
> this isn't entirely guaranteed (unless the write buffers are disabled), |
41 |
> but the chances are far higher of a clean state than they are with RAID-5 |
42 |
> with its single-way parity. |
43 |
> |
44 |
Yes, but RAID-6 isn't simple expansion of RAID-5 concept. |
45 |
|
46 |
It has two parity chunks-P and Q. While P is simple XOR parity from |
47 |
RAID-5, Q is substantially compute intensive. |
48 |
Further, while Q generation is "expensive", CPU can utilise its SSE |
49 |
artillery and soften the perceived extra load. |
50 |
|
51 |
But when CPU has to actually use Q parity for data regeneration, things |
52 |
come to a crawl. That part is quite intensive and SSE is useless there, |
53 |
so best CPU can do is use tabelaric approach and regenerate data |
54 |
byte-by-byte. |
55 |
|
56 |
So SW RAID-6 has come to be a bad idea, at least for me and my |
57 |
applications. HW RAID-6 with good HW is another story altogether, though. |
58 |
|
59 |
With SW, you pay extra drive, small extra power consumption, some extra |
60 |
cycles for Q generation ( not quite inconsequiential) and BIG penalty |
61 |
for regeneration - so big that usually "doing bussines as usual" while |
62 |
in such degraded mode is out of the question. |
63 |
|
64 |
So after some experience with SW and HW RAID-6 i opted for RAID-5 with |
65 |
cold spare and regular backups for pretty much everything. |
66 |
|
67 |
> (FWIW I do run without UPS. Unfortunately the reality is that a proper |
68 |
> UPS for this level of machine, at least back when I was running CRTs, |
69 |
> would cost near what the machine itself did, and given that I was already |
70 |
> buying near the top of my budget range that put a UPS out of |
71 |
> consideration. Since I switched to LCD I've been considering it again |
72 |
> and would likely have one by now had the economy and therefore my budget |
73 |
> not tanked.) |
74 |
> |
75 |
I did run for some time all of my machines through UPS only to find this |
76 |
costs too much. |
77 |
|
78 |
So I switched to DC. I rectified all three 220VAC phases to 260-300V DC |
79 |
and backed this up by 20x 100Ah-12V lead-acid akus in series. Even |
80 |
without akus it feels pretty much close to having UPS. When interruption |
81 |
happens, 90% of the time it affects only one phase, so remaining ones |
82 |
take over and I don't feel a thing... |
83 |
|
84 |
For my remote location I can't have 20 akus there, so I am working on |
85 |
PSU modification which would allow me to work on two... |
86 |
|
87 |
> That's what my "rootbak" partition is for. =:^) |
88 |
> |
89 |
Yes. And I use same thing on my workstation. Still, that doesn't quite |
90 |
match robustness of initrd. |
91 |
With initrd, if you can get to the phase where grub takes over, you can |
92 |
pretty much boot. Even if your kernel can't work with root drive for |
93 |
whatever reason ( missing driver for SATA,AHCI, ext4 ...) |
94 |
|
95 |
> Well, you /could/ burn a CD with a kernel built with the proper options, |
96 |
> but you are correct, booting from a CD is indeed a hassle. |
97 |
> |
98 |
On Gentoo, how to do this is far from obvious. |
99 |
|
100 |
> Actually, I've seen mods for *-WRT class routers and software (OpenWRT, |
101 |
> DD-WRT, Tomato, etc) that do pretty much the same thing, solder a USB |
102 |
> based flash module to the thing and expand their storage and flexibility |
103 |
> by an order or two of magnitude! Run a server, etc, directly off your |
104 |
> router! They can be made detachable, or not, as desired. |
105 |
> |
106 |
> |
107 |
Cool. If you have a link to such a thing, it would be apppreciated ;o) |
108 |
> But if I were doing it over, as I said earlier, I'd definitely create |
109 |
> separate RAID-6s instead of the single partitioned RAID-6, and use two |
110 |
> rootbaks so three root filesystem images total, one on each of three |
111 |
> separate RAID-6s, so if one failed to come up, I'd just change the |
112 |
> command line as necessary to bring up the second, and if it failed, the |
113 |
> third. |
114 |
> |
115 |
|
116 |
Not every application has plenty of storage space. |
117 |
|
118 |
> I'd also split the RAID-1, either creating two single-disk RAID-1s or |
119 |
> more likely, four separate /boot images direct on the individual spindles. |
120 |
> |
121 |
> |
122 |
This is what I do now. Four way RAID-1 for boot is exactly that. |
123 |
GRUB sees it as four separate drives with ext2 that can be mounted |
124 |
exactly the same as any other drive, so I can boot from any of them. |
125 |
When kernel takes over, it assembles them into an md array, so you can |
126 |
mount /boot and update all four drives with exactly the same data, when |
127 |
needed... |