Archive for category Hardware
Linux Software RAID and LVM
Posted by aaron in Hardware, Linux, Server Software on August 31st, 2009
I wanted to create a RAID 5 array with four 1tb drives. I only have three, but I have a 750gb and 320gb drive lying around. I figured there was probably a way to combine them into a 1tb drive that I could use with the others.
Using Linux’s LVM, I can create a logical partition from the two smaller drives as big as the 1tb drive.
$ pvdisplay
Lists all physical volumes managed by LVM. First we have to create the physical volumes for LVM. I prefer to create the volumes out of partitions, although you can do it from raw drives too.
First let’s use fdisk to create “Linux LVM” partitions on the two drives.
$ fdisk /dev/sdb Press "n" to create a new partition Press "t" to set the partition type, and enter "8e" for Linux LVM.
When creating the partition, accepting the defaults will make it use the whole drive. I want to use the entire 750 drive and only part of the 320 drive, so that in total it has the same number of blocks as the 1tb drives. So I first created the “Linux RAID” partitions on the 1tb drives so I could see how many cylinders it listed, which ended up being 121601. So I created a partition the full size of the 750 drive (91201 cylinders), then created a 121601-91201 cylinder partition on the 320 drive.
$ fdisk -l /dev/sdb Disk /dev/sdb: 320.0 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Device Boot Start End Blocks Id System /dev/sdb1 1 30400 244187968+ 8e Linux LVM /dev/sdb2 30401 38913 68380672+ 83 Linux $ fdisk -l /dev/sdj Disk /dev/sdj: 750.1 GB, 750156374016 bytes 255 heads, 63 sectors/track, 91201 cylinders Device Boot Start End Blocks Id System /dev/sdj1 1 91201 732572001 8e Linux LVM
Now that I have the two partitions ready, I moved on to LVM setup.
$ pvcreate /dev/sdb1 $ pvcreate /dev/sdj1
This sets up the two partitions as physical volumes for LVM.
Next is creating a logical volume group:
$ vgcreate vg_tb /dev/sdb1 /dev/sdj1
This creates a volume group called “vg_tb” using the two physical volumes sdb1 and sdj1.
Let’s take a look at what we have so far:
$ pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_tb PV Size 232.88 GB / not usable 832.50 KB Allocatable yes PE Size (KByte) 4096 Total PE 59616 Free PE 59616 Allocated PE 0 PV UUID 70hPKX-n11U-RcB6-0Kyt-1SOP-ni7E-2Y9hcE --- Physical volume --- PV Name /dev/sdj1 VG Name vg_tb PV Size 698.64 GB / not usable 2.34 MB Allocatable yes PE Size (KByte) 4096 Total PE 178850 Free PE 178850 Allocated PE 0 PV UUID PzFb9b-lapG-KdT3-78nh-Gq75-F0Lo-I3xCrl --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup00 PV Size 111.60 GB / not usable 2.86 MB Allocatable yes PE Size (KByte) 32768 Total PE 3571 Free PE 1 Allocated PE 3570 PV UUID 1wM65Z-3QGd-vDiq-mq1R-YhEE-Ackp-hh3g13 $ vgdisplay --- Volume group --- VG Name vg_tb System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 931.51 GB PE Size 4.00 MB Total PE 238466 Alloc PE / Size 0 / 0 Free PE / Size 238466 / 931.51 GB VG UUID olg9GP-x1sC-sFAD-TgWY-KIIx-YWNt-kL763n --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 111.59 GB PE Size 32.00 MB Total PE 3571 Alloc PE / Size 3570 / 111.56 GB Free PE / Size 1 / 32.00 MB VG UUID IZ25LV-oMOG-DwKK-QuFN-bqqp-ClUe-d71k5l
So far so good. The next step is to create a logical volume in the new volume group:
$ lvcreate vg_tb -n onetb -l 100%VG Logical volume "onetb" created
This creates a new logical volume called “onetb” in the “vg_tb” group using 100% of the group’s available space. Now let’s take a look at the list of logical volumes:
$ lvdisplay --- Logical volume --- LV Name /dev/vg_tb/onetb VG Name vg_tb LV UUID sQKaq9-D6Mv-p8it-vWGW-O7DX-FGmC-cl5FSh LV Write Access read/write LV Status available # open 0 LV Size 931.51 GB Current LE 238466 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 --- Logical volume --- LV Name /dev/VolGroup00/LogVol00 VG Name VolGroup00 LV UUID G5hlbb-tA3S-qhTS-03us-f9dl-1Vxy-9vDSU5 LV Write Access read/write LV Status available # open 1 LV Size 109.62 GB Current LE 3508 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Name /dev/VolGroup00/LogVol01 VG Name VolGroup00 LV UUID 7NZrY9-1wSJ-4fRp-VPnM-V07u-9rj8-vmtxTx LV Write Access read/write LV Status available # open 1 LV Size 1.94 GB Current LE 62 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
You can ignore all of the VolGroup00 things, those are the auto-created volumes from when I installed Fedora.
At this point, I have a new device at /dev/vg_tb/onetb which is the same size as my 1tb drives, and I can use it exactly as I would use the 1tb partition at /dev/sdf1.
Now it’s time to create the RAID 5 array from these four volumes.
$ mdadm -v --create /dev/md1 --chunk=128 --level=5 --raid-devices=4 /dev/sdf1 /dev/sdh1 /dev/sdi1 /dev/vg_tb/onetb mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: size set to 976756608K mdadm: array /dev/md1 started.
The array will begin syncing, and you can watch it by running:
$ watch -n 1 "cat /proc/mdstat" Personalities : [raid6] [raid5] [raid4] md1 : active raid5 dm-2[4] sdi1[2] sdh1[1] sdf1[0] 2930269824 blocks level 5, 128k chunk, algorithm 2 [4/3] [UUU_] [=>...................] recovery = 5.5% (54017536/976756608) finish=593.1min speed=25925K/sec md0 : active raid5 sdg1[0] sdc1[3] sde1[2] sdd1[1] 2197715712 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices: <none> </none>
While this is syncing, we can create the ext3 filesystem.
$ mke2fs -j -b 4096 -m 0 -E stride=32,stripe-width=96 /dev/md1
This creates an ext2 filesystem with journaling (ext3), the block size is 4kb, and 0% of the blocks are reserved for the superuser. The stride is calculated as the raid block size / ext2 block size (128k / 4k = 32). The stripe width is calculated as the stride value times the number of data disks in the array. In a 4-disk RAID 5 array, there are three data disks, one being for the parity data.
This will take some time, and will significantly slow down the sync process. Mine dropped from 25mb/s to around 1mb/s. I figure I’ll let it create the filesystem so I can start copying data to it right away, and let it finish its sync on its own time.
While you’re at it, you should set up munin to monitor the SMART data from all the drives as well as the status of the array using my munin-raid-monitor plugin.
Additional Reading:
- http://linux-raid.osdl.org/index.php/RAID_setup
- http://bfish.xaedalus.net/2006/11/software-raid-5-in-ubuntu-with-mdadm/
- http://www.linuxquestions.org/questions/linux-hardware-18/how-can-i-override-the-5.00-reserved-for-the-super-user-mkfs.ext3-creates-616546/
- http://www.linuxconfig.org/Linux_lvm_-_Logical_Volume_Manager
- http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/LV_create.html
DIY Power over Ethernet Cable
I am setting up a security camera mounted under the eve of my roof. Rather than running an ethernet cable and an extension cord up there, I figured I could use the four unused wires in an ethernet cable to provide the camera with power. The camera only uses 9v, so it should be pretty safe. I had a couple extra 1ft patch cables lying around, so I spliced the transformer into two patch cables. This will let me run a long CAT 5 cable from end-to-end, and attach it to the camera and ethernet/power.
Here’s a photo of how I spliced the power into the ethernet patch cables.

And a close-up of the wires soldered together.
I’m pretty sure this is all safe, but if you try this, be sure to test all the connections thoroughly with a multimeter and CAT 5 cable tester before plugging it in to the wall or any computer or switch.
Another raid5 scare, and how to recover an apparently trashed array
Posted by aaron in Hardware, Linux, Troubleshooting on August 18th, 2008
This morning after waking up to lots of thunder and lightning, I got a text message saying my raid5 array had failed. Only this time, 2 of the 3 drives were missing. Since both of those drives were actually mounted via a vblade share (on a different physical machine), I assumed that the other server had freaked out during a power surge. I quickly rebooted the machine to bring back the vblade shares, but then the trouble started.
At some point, the array was “started” but had two faulty drives. I tried –remove and –add to remove and re-add the “faulty” drives. This had the effect of bringing the array back “online” with all the drives as spares. I removed the drives again, and tried the trick I used last time:
mdadm --assemble -f /dev/md0 /dev/sda2 /dev/etherd/e4.1 /dev/etherd/e4.2
However, this also didn’t work. It showed the array with /dev/sda2 and /dev/etherd/e4.2 as spares, and e4.1 was nowhere to be seen. At this point I was a little more than worried that I had done something to trash the array. That’s when a google search led me to this handy command:
mdadm -E /dev/sda2
This prints out the superblock information that is present on the hard drive. This told me that the e4.2 drive had not been damaged, since I was able to see information there. Also, the UUIDs on all three drives still matched. However, the bottom section of the report differed on all the drives.
A few google searches later, and I came across this:
mdadm --create --assume-clean --level=5 --raid-devices=3 /dev/md0 /dev/sda2 /dev/etherd/e4.2 /dev/etherd/e4.1
Using the –assume-clean flag tells mdadm not to write any data to the drives, or to start initializing the array. However, what I didn’t realize was that it would reset the UUIDs. That command brought the array back online, at least according to /proc/mdstat, but when I tried to mount it, it couldn’t figure out the filesystem.
That’s when I realized that the *order* in which you specify the drives to the –create command actually matters. I re-ran the command like this:
mdadm --create --assume-clean --level=5 --raid-devices=3 /dev/md0 /dev/sda2 /dev/etherd/e4.1 /dev/etherd/e4.2
The array came back online, and I was able to mount it!
So while RAID 5 protects against a single hard drive failing, it does not protect against me running stupid commands on the array. I’m going to have to start backing up my raid arrays onto other drives…
Useful Links
Choosing a laptop for a graphic designer
Posted by aaron in Apple/os x, Hardware on July 6th, 2008
This is primarily targeted towards graphic designers, although anyone can benefit from the information here as well. This post focuses on the hardware of a laptop rather than the software. I figure I’ll save a talk about software for a different day.
To begin, I would stay away from anything that isn’t Dell or Apple. IBM and Toshiba are good too, but they typically market more to corporations than home users. Both Dell and Apple are pretty much the top of the line as far as home and small business go. You’ll always hear about people who have had problems with both, but they are pretty good about fixing things if you get the extra warranty. Again, the information here is applicable to any brand of laptop, but I will mention specifics of some Dell and Apple laptops.
Let me tell you about some of the things that will make the most difference when using your laptop:

1) Screen resolution. Not screen size! My Dell that I got in 2003 is 15.4″, but has a resolution of 1680×1050. This is probably the biggest reason I haven’t stopped using it yet, even though I have an iMac as well. The screen is wide enough to fit two internet windows side by side comfortably. Also, when working in Photoshop or InDesign, the toolbars sit nicely off to the side, still leaving plenty of room in the middle for your image. The toolbars are physically small because the resolution is so high.
2) Dedicated graphics card. The lower-end computers use a graphics card that is built in and shares the main system memory. This means you lose 100-200 megabytes of RAM since your graphics card is using it.

Also, the graphics card runs much slower since it has to pull data through the same bus as the system to access the RAM. Getting a dedicated graphics card means it has its own RAM and doesn’t share with the main system. If you are planning on doing any kind of video editing, this is a must. It will also make Photoshop run much faster. My Dell has a 64mb graphics card, although they are usually 128-256mb now. But even the 64mb card is better than none. Dell’s Inspiron series has the share graphics card, they call it the “Intel Graphics Media Accelerator”. The XPS and Studio series have the dedicated graphics card, either a 128mb or 256mb NVIDIA GeForce. The biggest drawback to an Apple laptop is that you don’t get a dedicated graphics card until you spend some serious money on a Macbook Pro. Their regular Macbooks have just a shared graphics card.

3) RAM. You can get away with having 1gb of RAM, but really you should shoot for 2gb minimum. 3gb is good, 4gb is more than enough for anything you’ll do, short of having all of CS3 and a video editing program open at the same time. I have slowly added RAM to my Dell over the years, which is another reason it has been able to last this long. I am up to 1.25gb at the moment. I only have CS2 installed on it, not CS3, so I can’t tell you how CS3 works with 1.25gb. A trick you can do with the Apples is buy the computer with the minimum RAM installed, then go buy separate RAM from Newegg and install it yourself. Apple charges way too much for their RAM upgrades, and it is pretty easy to install. I looked at doing that with the Dell, but they only charge $50 for an extra gig, so at that point it isn’t worth your trouble to buy it elsewhere.
4) Processor. Any of the Intel Duos will be totally fine. You really won’t notice much of a difference between the 2.1ghz and the 2.6 ghz. You will, however, notice a difference between an Intel Duo and an Intel Celeron. A lot of other brands, and also the lower-end Dells use the Celeron processors. You definitely do not want one of these. You will notice that it is much slower.

5) Built-in camera. You may not think you need it, but if you don’t get it you’ll find yourself constantly annoyed that you don’t have one and everyone else does. Video and voice chatting is becoming much more common these days. It’s all free, so it’s better than using a cell phone if you’re at your computer. Also it acts like a speaker phone because you don’t need to hold a phone to your ear to talk. I use voice and video chatting for work meetings all the time. You can’t get an Apple without a camera at this point, so that isn’t really an issue. And it looks like Dell includes a camera on all their XPS series, and has the option to add it to an Inspiron.
In Conclusion
With Dell’s Inspiron and Studio lines you can get a screen at 1920×1200. That is the same resolution as my 24″ iMac, and it’s absolutely incredible, especially for photo editing. Packing it into a 15.4″ laptop screen makes the individual pixels really tiny, but that will only make things super sharp looking.
One alternative to getting a super high resolution screen is to get one that is slightly smaller, like 1440×900, and then also get an external monitor for your desk. This will let you take advantage of an even bigger total screen size when you’re sitting at your desk, and will still be fine when you are mobile. I use an external 17″ screen along with my main screen on my iMac. I have the extra screen turned on its side so that it is more like looking at a printed page. I can leave things over there for reference while I’m typing on my main screen, like code documentation or file browsers. When working in Creative Suite, it is really nice to be able to open up all the tool palettes and shove them on to the external monitor, and use the full size of the main screen for the document you’re editing!
Hopefully this information helps someone in their search for the perfect laptop. I’m sure I’ll have a write-up comparing software some other time. Feel free to comment on your experiences in choosing a laptop. I’d be curious to hear what others think.
Phone as a Wifi access point!
This is pretty much the coolest thing in the world! I am posting from my laptop which is connected to my cell phone’s wifi connection, using Sprint’s EVDO connection to the internet. The software that enables me to do this is called wmwifirouter. Earlier this month they released their first final version of the software, and started charging for it. It’s not outrageously priced, but you can still find the earlier free versions on the internet if you search for versions 0.90 or 0.89.
Sprint’s EVDO connection is actually pretty speedy. Of course it’s not like having a cable connection, but it’s definitely faster than dialup. I downloaded a 2mb file at a solid 85kb/s. Also see below for a traceroute to this server.
Syncing Windows Mobile with OS X and Google Calendar
Posted by aaron in Apple/os x, Hardware on April 17th, 2008
Image by nino63004 via Flickr
Well I did it! I got the HTC Mogul on Sprint’s SERO plan. Everything has been pretty painless so far. Activation was easy, text messaging works, and Internet browsing is pretty fast! Now comes the hard part: getting my data to sync between Windows Mobile and OS X.
There is an excellent program out there that is made exactly for this: Missing Sync. While not free, I do think it’s a good deal, so I went ahead and bought it. Everything transferred over flawlessly, and it’s pretty neat being able to see my call and SMS log on my computer.
However, my syncing ship has only begun to sail. I use Google Calendar as my primary calendar for everything. It has been a huge help in keeping things organized, since I can open it from any computer. My friends and I also subscribe to each others’ calendars so that we can better schedule things together. It can send text message reminders of events, which was a huge help for when I was out and about with no access to a computer. I moved to Google Calendar from iCal a while ago for these reasons.
Missing Sync can sync the Mogul’s calendar with iCal, but not with Google Calendar. I tried subscribing iCal to Google Calendar’s public url, but Missing Sync didn’t like that because it was a read-only calendar. I decided going the other way, publishing iCal to a URL, then subscribing Google Calendar to that, was a better option. I enabled WebDAV on a virtual host on my server.
DAVLockDB /www/sub.mydomain.com/dav/davlockdb DAVMinTimeout 600 DAV On <location /ical> Options None SSLRequireSSL SSLOptions +StdEnvVars AuthType Basic AuthName "Calendar Access" AuthUserFile "/www/sub.mydomain.com/ssl/.htpasswd" <limitexcept GET HEAD OPTIONS> require user aaron </limitexcept> </location>
Publishing iCal to a WebDAV server is super easy, just choose “Publish on a Private Server” and enter the URL you have created.
Note: You don’t need to run your own WebDAV server to do this, you can use box.net to publish your iCal!
The one downside to this is that it isn’t possible to add events using Google Calendar. But I figure I’ll have my Mogul on my all the time anyway, and I can just add through there. Publishing my calendar to Google Calendar lets my friends still see my schedule.
Cell phones hurt my brain
But not in the radiation kind of way… in the omg-too-many-things-to-think-about kind of way.
I’m in the market for a new cell phone and provider. I’ve been on a Verizon family plan for the last 5 years, always with the free phone that comes with the plan. I’m switching to my own plan when the family contract is up. I’ve been pretty happy with the quality of calls on Verizon, and coverage seems to be great wherever I need it. But I’m definitely open to switching to another provider.
One of the hardest parts is figuring out how to start looking for a phone and plan. I think I’m going about this the wrong way. I have vague idea of what I want in a phone, but mostly I’ve just been reading lots and looking at lots of different options.
I’ve been hearing a lot of talk about Sprint’s SERO plan. For $50/month I can get 1250 minutes, and unlimited text and data. That’s hard to pass up. On the other hand, there are some features I want that none of the SERO phones seem to have.
It’s time to take a different approach to this, since I seem to continuously waste hours on end reading about phones. I’m going to use the MoSCoW Method to figuring out what cell phone I should get! The MoSCoW Method is used in software development to help prioritize features the client wants.
| Must | Without this, the project is a failure |
| Should | Should have this if at all possible |
| Could | Could have this if it does not delay Shoulds or Musts |
| Won’t | Won’t have this in this version, but Would like in the future |
While this method was not exactly intended for this, I am going to prioritize my wishlist of cell phone (and service plan) features into these categories. However, the “W” doesn’t really seem to apply here, so I’ll leave out that category.
Must |
Should |
Could |
|
|
|
Some things I’ve been reading:
So far it looks like either the HTC Mogul or Palm Treo 755p are at the top of my list.
Caller ID Box
Update:
Everything looks like it should be working, and I even modified the answering_machine.c script a little bit. But for some reason, it appears as though the modem is just never receiving the ring signal. It may be because I am running it in a dual processor machine. I am going to reinstall linux in a single processor machine and try again.
Fun with caller ID!
Posted by aaron in Hardware, Server Software on June 6th, 2007
We just got caller ID at my house. One of my roommates doesn’t have a cell phone, so eventually everyone else stopped answering the house phone because it was always for him. But then he would come home and not know who called. Now of course, caller ID solves this problem by logging who called on the phone handset, but being me, that is not enough!
My plan is to hook up a computer to the phone system, so that when a call comes through, it will send the caller ID information to a list of subscribed AIM screennames, that way I and he and anyone else will be instantly notified of who is calling without having to run to the phone.
So far, I’ve found a great guide for a simple setup of a linux answering machine, which I will adapt to use as this caller ID notifier. A $10 Linux Answering Machine.
I’m installing the zaptel driver at the moment, on a Fedora Core 6 box. Here is the process so far:
cd /usr/src
wget http://ftp.digium.com/pub/zaptel/zaptel-1.4.2.1.tar.gz
tar -xzf zaptel-1.4.2.1.tar.gz
cd zaptel-1.4.2.1
I got an error the first time I tried to run make:
xbus-core.c:171: error: ’struct inode’ has no member named ‘u’
Because I am using FC6, I needed to make a small tweak to the source code, according to this message.
edit this file:
xpp/xbus-core.c
and search for u.generic_ip
change the line above that from 2,6,19 to 2,6,18
Now continue the normal build process: make, make install
The location of the zapata library has moved to:
http://ftp.digium.com/pub/zaptel/releases/
When I tried to run ‘make’, I got a bunch of errors about undeclared constants, starting with
zap.c:571:26: error: linux/zaptel.h: No such file or directory
It looks like the zap.c and goertzel.c files are looking for the zaptel.h file in linux/zaptel.h, but not finding it. I have no idea why, but I change the include lines to look for /usr/include/zaptel/zaptel.h, and it works.
Continuing with Bob’s instructions, I got down to where I need to compile his program. I got some errors like:
answering_machine.c:77: warning: incompatible implicit declaration of built-in function ‘exit’
answering_machine.c:87: warning: incompatible implicit declaration of built-in function ’strncpy’
I found that it is necessary to add a couple of include lines:
#include <stdlib.h>
#include <string.h>
I also disabled SElinux before I could run this program.
vi /etc/sysconfig/selinux
SELINUX=disabled
echo 0 > /selinux/enforce
This will disable SElinux from ever starting again, and disable it in the current boot
2/4 failed drives in a raid5 array??
Posted by aaron in Hardware, Linux, Troubleshooting on December 30th, 2006
Apparently raid arrays don’t like it when you kill power to the machine. We’ve been doing remodeling in the house, and I’ve been turning on and off breakers. Apparently I forgot which breaker the servers were on, and turned it off accidentally a few times.
One of the drives apparently did fail for some reason. I accept this. This happens all the time, and that is exactly why I have a raid 5 array. I was like ok no big deal, I’ll just send it in for an RMA. But shortly after, another drive looked like it failed. I saw this in /proc/mdstat:
…[U__U]
meaning only two of the four drives were left. Future attempts at rebooting the machine resulted in the raid volume not being accessible at all. Other clues that indicated a drive failure:
From /var/log/messages:
Dec 29 19:29:06 onyx kernel: Buffer I/O error on device md0, logical block 0
Dec 29 19:29:06 onyx kernel: lost page write due to I/O error on md0
Dec 29 19:29:06 onyx kernel: EXT2-fs error (device md0): ext2_readdir: bad page in #2
There was also some output in dmesg I found by typing
dmesg | less
(But I didn’t write it down, and now dmesg outputs information from the last boot which successfully brought up the array with 3/4 drives.)
I was convinced I hadn’t actually lost 2/4 drives at the same time, and set out to figure out a way to bring it back.
After several hours of looking through forums and reading the mdadm documentation, I was able to get the array back running on 3/4 drives.
I created the configuration file /etc/mdadm.conf:
DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
Then ran:
/sbin/mdadm –assemble -f /dev/md0
mdadm: forcing event count in /dev/sdc1(2) from 1077319 upto 1077330
mdadm: clearing FAULTY flag for device 1 in /dev/md0 for /dev/sdc1
mdadm: /dev/md0 has been started with 3 drives (out of 4).
Now I just have to RMA this drive very quickly before another drive actually does fail.

