Skip to main content

Right on track

I blogged back in January that I had registered for the Sporting Life 10km. This was part of my New Year's resolutions to lose weight and get my 10km time under 50 minutes. Well, the run was this past Sunday, and my time was 50 minutes 12 seconds. So close! I'm pretty happy with my time though, I felt like I pushed myself a lot harder than I did at the Harry Rosen Spring Run Off in April, and I managed to improve my pace from 5:14 per kilometer to 5:01 per kilometer. The other part of my New Year's resolution, to lose weight, is coming along a bit more slowly. I have shed a few pounds since January, but nowhere near the amount I was hoping to. Still, I'd rather be slightly more fit and heavier than out of shape and lighter!

Quest for the Perfect Storage Solution!

I spent a little bit of time today looking into some of the storage solution choices out there.  I was mainly concerned with systems supported under Linux, but I didn't limit myself to just those.

My quest started this morning when I read a post on Gizmodo: Buffalo DriveStation: Serial ATA, Fanless Design. I had heard of Buffalo Technology before, I've often considered buying one of their products, or something like it.  What could be better than a 2 Terabyte box that you just plug into your network and configure?  Well...The Perfect Storage Solution of course!

A few simple use cases may describe what I'm looking for.  First, if a drive fails, I want to be able to replace it with no downtime, loss of data, and using any drive of sufficient size (at least as large as the one that failed) that I have on hand.  Second, if I'm running out of free space, I want to be able to add a brand new drive and start using it.  Third, if there is no more physical room for a new drive, I want to be able to migrate data off of the one of the drives (probably the smallest/oldest one), to make room for a newer, larger drive.  I suppose this is a direct consequence of satisfaction of the first requirement.

Out of these simple cases, I can distill a few must-have features:

  • Scalable! I should be able to add more space to this thing with a minimum of hassle.  I consider having to unmount a filesystem, grow the partition, then grow the filesystem a hassle.  I also consider having to get drives of exactly the same size as the drives already in there a hassle too.  I want to add more space, not replace the space I have!  LVM comes close to achieving this.
  • Fault tolerant: The Perfect Storage Solution should be able to handle at least one of the drives failing.  Better would be the ability to handle n drive failures.  RAID-5/RAID-6 work well here, but fail the scalability requirement.
  • Cheap!  I shouldn't need proprietary hardware/software for this.  I should just be able to add another drive to my enclosure and start using the space.  Or at the worst, buy another enclosure and add the new drive to the new enclosure :)
Some other nice features would be things like:
  • Snapshot support: great for backups, or when doing some kinds of admin work.
  • Very large filesystem support.  It's very easy to get more than a few terabytes of data (legitimately!) these days :)
And as long as I'm writing a wish list:
  • Transparent compression
  • Transparent encryption
  • Clustering (create one big pool of storage from drives scattered over a network)
So what's wrong with the devices like the one above?  Basically they don't scale well.  There's no nice way to integrate these things into one big pool of disk space.  You need to mess around with mount points, and put symlinks all over the place...unless you use LVM.

What's wrong with LVM?  It's not fault tolerant.  Sure, you can run LVM on top of a bunch of RAID devices.  But that means to add more storage in a fault tolerant way, you need to add a whole new RAID array since it's not really possible (as far as I know, somebody please correct me on this if I'm wrong!) to add a single drive into an existing RAID array.

Wikipedia's RAID page mentions the idea of a "write hole", and refers the reader to Jeff Bonwick's post on RAID-Z. The concept of the "write hole" does make some sense to me; basically if the drives lose power or crash while writing the parity data, then the data blocks and parity blocks may be inconsistent. It's not clear to me how RAID-Z solves this, and why you can't check those blocks when you restore power (especially when using some kind of journaled filesystem...although I suppose that the journal's parity data may have been corrupted as well!), but certainly data integrity is an issue that the Perfect Storage Solution must address!

I thought Sun's ZFS was promising for a little while.  But it seems that it doesn't handle drives of different sizes any better than RAID-5/6 does.  It's also unlikely that it will ever be available to Linux users because of licensing issues.

It certainly seems like LVM is the closest to what I'm looking for.  If only it managed parity data across physical blocks!  Then just polish up the ext3 online resizing functionality and life would be great!  Or maybe reiserfs/jfs/xfs would work better for a resizable filesystem?

Technorati Tags: , , ,

Dr. Janet Smith interview

From the American Papist:

Please note an interview with Dr. Janet Smith, Fr. Michael J. McGivney Chair of Life Ethics and Professor of Moral Theology at SHMS will be aired on an Australian Radio program tonight, Tuesday, May 2, 2006 at 8.30pm our time [EST]. The topic will be condoms and aids [what we've been talking about]. You can hear this interview by visiting http://www.abc.net.au/rn/audio.htm [More information on the program: http://www.abc.net.au/rn/talks/8.30/relrpt/
Mel would love this, but she's in Vegas right now, so I'll have to download it for her. Mel and I are also going to see Dr. Janet Smith speak at the Humane Vitae conference in Ottawa next weekend. We can't wait!

Canadian Tolerance

This recent story about a talk given by pro-life speaker Stephanie Gray, and how she was treated by some students with other opinions illustrates several of the major problems I see in Canadian society today. First, some context - Canada has what has got to be one of the most uncivilized policies in the world with regards to abortion. What laws does Canada have controlling abortion, you ask? Good question! Today in Canada, there are no laws governing abortion. Legally you are allowed to abort your child at any point from the time of conception until he or she is fully delivered from the womb. Yup, that's right. If, halfway through labour, a woman decides that she'd really rather not go through with this baby thing, then there's nothing stopping her from having a partial-birth abortion. For me, things seem pretty straight forward. I think (I hope!) everybody would agree that a newborn baby is a human being. As a human being, she has the right to life under the Canadian Charter of Rights and Freedoms, under the UN's Universal Declaration of Human Rights, as well as natural law, and plain common sense. Since a newborn is a human being, killing a newborn baby is wrong, and is a criminal offence. Justifiable situations for purposefully killing another person, such as self-defence, clearly don't apply here as the newborn is not threatening anybody else's life by any direct action. The problem seems to be: is a yet-to-be-born baby a human being? Why wouldn't she be? What are the differences between a just-delivered child, and the same child a few moments earlier? The only differences are her physical location, and the way she is receiving the critical materials for living: nutrition and oxygen. This is the basis of the dependence argument claimed by many pro-choice advocates; a prenatal baby is not human because she is dependent on her mother for life. But is a newborn any less dependent after birth? She still needs somebody to feed her and keep her warm. We are all dependent on others at different stages in our lives. A 3 year old child is not completely independent. A heart-attack victim needs somebody to keep his blood circulating, his lungs breathing, and his body fed while it is repaired and while it recovers. Being dependent doesn't rob us of our person-hood. The dependence argument doesn't make sense. Does the child's location determine her person-hood? This is another typical pro-choice argument: since the baby is inside the mother's body, she has the right to decide the baby's fate. Again, this doesn't make any sense - if I am human, I am human no matter where I am. Therefore, a baby in the moments prior to birth is also a human being. What about in the days, weeks, or months prior to birth? What is the difference between a baby at 6 months since conception, and a baby at 9 months? Simply a matter of development. The baby at 6 months since conception will continue to grow and develop to become a larger baby at 9 months. After birth the 1 day old baby will continue to grow and develop until she is 1 month old, 6 months old, 1 year old, 3 years old, 10 years old, 20 years old. Even after her body stops developing, her mind continues to learn, adapt and change. So to say that a prenatal baby is not yet human, or not "fully" human simply because she is still developing is nonsensical. When do we stop growing, stop changing, stop developing? Only when after we're dead. We are human by virtue of having human parents, and by a miraculous gift of life from God. What else could a human sperm and human egg combine to form? A rabbit? Penguin? Palm tree? No, the only thing that a human sperm and human egg can form is a human child. Back to the talk delivered at Western by Stephanie Gray. This story gave me a new sense of hope for Canada, but also makes me wonder: why is this subject taboo in Canadian politics and media? One major problem I see today is that no politician seems willing to rock the boat on this issue, or even to discuss it. At least our neighbours to the south debate this issue in a more public and open way. Perhaps a more fundamental problem is that it seems to me that in Canada if you voice a pro-life opinion then you are labelled as being intolerant and not respecting of a woman's rights. Isn't a pro-choice opinion not respectful of a baby's rights? Why is somebody with un-"liberal" views intolerant? This isn't the case with just the abortion issue, it also seems to be the case with other issues like same-sex "marriage", child care, and health care. Aren't "liberals" intolerant of "conservative" opinions? When did tolerance become the pinnacle of ethics and justice?

Re: Re: Ruby and Python compared

On his blog, Ian Bicking responds to the article, Ruby and Python compared. While there is much in the latter that is uninformed as to what Python is capable of, the most important point I got from Ian's post was:

An important rule in the Python community is: we are all consenting adults. That is, it is not the responsibility of the language designer or library author to keep people from doing bad things. It is their responsibility to prevent people doing bad things accidentally. But if you really want to do something bad, who are we to say you are wrong? It's your program. Maybe you even have a good reason.
I think this should be the motto of any module developer: "Keep people from doing bad things accidentally." It's impossible to keep a developer from shooting himself in the foot if he really wants to, so don't try too hard. Your job is to enable users of your code, not restrict them. I've heard many C++ / Java programmers complain that Python isn't object oriented because it doesn't offer private/protected data for classes. In a perfect world all libraries and modules would be perfectly designed and there would be no need to go mucking with the internals of a module you didn't write. Back here in the real world, APIs are often not as well thought out as they should be. In Python (and in Ruby as well I'm guessing) you can muck about with the internals of classes or objects if you have to. It's either that or get the upstream package fixed and distributed everywhere before you can deploy your application.

Everything old is new again

Today on the front page of the Toronto Star, the National Post, and the Globe and Mail is the "news" about the "Gospel of Judas" and how it describes a hidden side to Judas that has been covered up for centuries. I realize that everybody loves a conspiracy theory, hence the popularity of things like the X-Files and The Da Vinci Code. But just because something written at least 1,700 years ago was rejected by the experts of the day does not mean there is or was a conspiracy at work. In the article in the Toronto Star, Francine Kopun quotes expert Bart Ehrman that "There is no doubt it is genuine." A genuine what? Yes, this manuscript dates back to the 3rd century. It is genuinely a 3rd century manuscript. But is it genuinely the "Gospel of Judas"? Does it have anything historically accurate to say about Jesus or Judas? Nope. This is not the first time this "gospel" has popped up. St. Irenaeus of Lyons refers to a "Gospel of Judas" in his work "Against the Heresies," written around 180 AD, more than a century from the date of the manuscript being discussed in the news. Kopun quotes Ehrman again: "I think what this gospel does is show us that Christians in the early centuries believed an extremely wide range of things." If Kopun or Ehrman had done their research, they would have found that these writings were recognized as frauds at the time they were written, and had no basis in truth. I guess there's a lesson to be found here. You can write whatever garbage you want, and if nobody buys into it now, just wait a few millennia and people will trip over themselves to show how it was covered up by the established belief system, and write books and make TV shows and movies about it!