<p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">I’ve been doing some failure testing, and I ran into a really nasty condition. I&#39;m hoping that I did something stupid. If you guys know what happened, or can shed some light, please let me know.<br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> </p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
My test environment is four virtual machines. Two I installed G<span class="il" style="background-color:rgb(255,255,204)">luster</span> 3.3, and created a redundant volume between the two. I also installed apache and my custom application (it&#39;s like webdav) on these boxes. The boxes mount the redundant volume via 127.0.0.1 as G<span class="il" style="background-color:rgb(255,255,204)">luster</span> clients. The application uses the volume as it&#39;s storage.<br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> </p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
The other two boxes are clients. They run a custom python script to download files, upload files, remove files and list directories; very similar to webdav. Clients connect via http, perform the operation (PUT,GET,DELETE) then disconnect. Rinse, repeat. The balance of PUT/GET/DELETE is 1/5/1. One client connects to one server/brick, the other client connects to the other server/brick.</p>
<p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> </p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
I let both clients run for a while, then I stop one client. I then ‘reset’ the brick/server that is not ‘active’ (the other one is servicing the HTTP traffic) now. This is interesting to watch the test client, because there is a 15 second pause, then the operations proceed. This is great. I&#39;m very happy with this.<br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> </p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
When the ‘failed’ brick comes back up, the operations stop for 45 seconds. This is also fine. I then let the client run for a while, but the test suite fails shortly (10 minutes?) afterwards with a 500 server error. While investigating, I discover that there are a lot of ‘phantom’ files that are listed with just a filename, and lots of question marks (????) when doing an ‘ls –l’. ‘rm –rf *’ on the <span class="il" style="background-color:rgb(255,255,204)">Gluster</span> volume seems to complete, but leaves behind all the ‘broken’ files. <br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
I eventually decided to blow away the volume and start over again, which caused me to get educated on &#39;setfattr&#39; and wasted the rest of the day. I’m going to start some overnight runs now (before I leave for the day). I&#39;m going to try to reproduce this failure mode tomorrow.<br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
So guys, what might be going on here? My workload is moderate, and it’s only one client; not like it’s writing a bunch of files at once. <span class="il" style="background-color:rgb(255,255,204)">Gluster</span> has been pretty bulletproof and this is the first time it’s really scared me. If this was production, I&#39;d certainly have data loss. I have to believe that I&#39;m doing something very wrong, as hardware failures (simulated by the virtual &#39;reset&#39;) are very common, and should not be a problem..<br>
</p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> </p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Thanks for any insights,<br></p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></p><p class="MsoNormal" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Steve</p><br class="Apple-interchange-newline">