/[smeserver]/rpms/anaconda/sme7/smeserver-degraded-raid.patch
ViewVC logotype

Contents of /rpms/anaconda/sme7/smeserver-degraded-raid.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (show annotations) (download)
Mon Aug 24 15:09:08 2009 UTC (14 years, 9 months ago) by slords
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +0 -0 lines
FILE REMOVED
Import CentOS 4.8 sources

1 diff -Nur -x '*.orig' -x '*.rej' anaconda-10.1.1.37/fsset.py mezzanine_patched_anaconda-10.1.1.37/fsset.py
2 --- anaconda-10.1.1.37/fsset.py 2006-02-02 07:03:36.000000000 +1100
3 +++ mezzanine_patched_anaconda-10.1.1.37/fsset.py 2006-04-06 05:19:55.336561737 +1000
4 @@ -1340,6 +1340,7 @@
5
6 if bootDev.getName() == "RAIDDevice":
7 ret['boot'] = (bootDev.device, N_("RAID Device"))
8 + ret['mbr'] = (bl.drivelist[0], N_("Master Boot Record (MBR)"))
9 return ret
10
11 if iutil.getPPCMacGen() == "NewWorld":
12 @@ -2002,11 +2003,20 @@
13 self.minor)
14
15 def raidTab (self, devPrefix='/dev'):
16 + if self.level == 1:
17 + nDisks = max(2, self.numDisks)
18 + elif self.level == 5:
19 + nDisks = max(3, self.numDisks)
20 + elif self.level == 6:
21 + nDisks = max(4, self.numDisks)
22 + else:
23 + nDisks = self.numDisks
24 +
25 entry = ""
26 entry = entry + "raiddev %s/%s\n" % (devPrefix,
27 self.device,)
28 entry = entry + "raid-level %d\n" % (self.level,)
29 - entry = entry + "nr-raid-disks %d\n" % (self.numDisks,)
30 + entry = entry + "nr-raid-disks %d\n" % (nDisks,)
31 entry = entry + "chunk-size %s\n" %(self.chunksize,)
32 entry = entry + "persistent-superblock 1\n"
33 entry = entry + "nr-spare-disks %d\n" % (self.spares,)
34 @@ -2016,6 +2026,10 @@
35 device)
36 entry = entry + " raid-disk %d\n" % (i,)
37 i = i + 1
38 + while i < nDisks:
39 + entry = entry + " device dev/null\n"
40 + entry = entry + " failed-disk %d\n" % (i,)
41 + i = i + 1
42 i = 0
43 for device in self.members[self.numDisks:]:
44 entry = entry + " device %s/%s\n" % (devPrefix,
45 @@ -2028,6 +2042,15 @@
46 def devify(x):
47 return "/dev/%s" %(x,)
48
49 + if self.level == 1:
50 + nDisks = max(2, self.numDisks)
51 + elif self.level == 5:
52 + nDisks = max(3, self.numDisks)
53 + elif self.level == 6:
54 + nDisks = max(4, self.numDisks)
55 + else:
56 + nDisks = self.numDisks
57 +
58 node = "%s/%s" % (devPrefix, self.device)
59 isys.makeDevInode(self.device, node)
60
61 @@ -2039,12 +2062,18 @@
62 args = ["/usr/sbin/mdadm", "--create", "/dev/%s" %(self.device,),
63 "--run", "--chunk=%s" %(self.chunksize,),
64 "--level=%s" %(self.level,),
65 - "--raid-devices=%s" %(self.numDisks,)]
66 + "--raid-devices=%s" %(nDisks,)]
67
68 if self.spares > 0:
69 args.append("--spare-devices=%s" %(self.spares,),)
70
71 args.extend(map(devify, self.members))
72 +
73 + i = 0
74 + while self.numDisks + i < nDisks:
75 + args.append("missing")
76 + i = i + 1
77 +
78 log("going to run: %s" %(args,))
79 iutil.execWithRedirect (args[0], args,
80 stderr="/dev/tty5", stdout="/dev/tty5")
81 diff -Nur -x '*.orig' -x '*.rej' anaconda-10.1.1.37/raid.py mezzanine_patched_anaconda-10.1.1.37/raid.py
82 --- anaconda-10.1.1.37/raid.py 2005-07-09 07:17:54.000000000 +1000
83 +++ mezzanine_patched_anaconda-10.1.1.37/raid.py 2006-04-06 05:16:30.660228950 +1000
84 @@ -90,7 +90,17 @@
85 raidList = []
86 for key in raidSets.keys():
87 (level, totalDisks, mdMinor, devices) = raidSets[key]
88 - if len(devices) < totalDisks:
89 + if len(devices) == totalDisks - 1 and level in (1, 5, 6):
90 + log("missing components of raid device md%d. The "
91 + "raid device needs %d drive(s) and only %d (was/were) found. "
92 + "This raid device will be started in degraded mode.", mdMinor,
93 + totalDisks, len(devices))
94 + elif len(devices) == totalDisks - 2 and level == 6:
95 + log("missing components of raid device md%d. The "
96 + "raid device needs %d drive(s) and only %d (was/were) found. "
97 + "This raid device will be started in degraded mode.", mdMinor,
98 + totalDisks, len(devices))
99 + elif len(devices) < totalDisks:
100 log("missing components of raid device md%d. The "
101 "raid device needs %d drive(s) and only %d (was/were) found. "
102 "This raid device will not be started.", mdMinor,
103 @@ -160,11 +170,11 @@
104 if isRaid0(raidlevel):
105 return 2
106 elif isRaid1(raidlevel):
107 - return 2
108 + return 1
109 elif isRaid5(raidlevel):
110 - return 3
111 + return 2
112 elif isRaid6(raidlevel):
113 - return 4
114 + return 2
115 else:
116 raise ValueError, "invalid raidlevel in get_raid_min_members"
117

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed