<< so how would you defrag it? >>
Once the basic problem of getting the controller to think of the two disks as one disk, the problem of defragging goes away. Essentially a striped RAID is like writing a book in two separate volumes: write one line in volume A, the second line in volume B, the third line in A, the fourth line in B, and so on. Then getting the controller to work properly is essentially fixing your eyes so that you can read both volumes with both eyes simultaneously and incorporate the two in your brain to make one coherent structure.
So essentially we have a one-to-one and onto mapping from the union of A and B to C (the virtual volume): c_i={a_((i+1)/2) if i is odd; b_(i/2) if i is even; a_i, b_i in A and B respectively} (this is just an example and it could be done numerous other ways, but this is the most straightforward. If you wanted, you could go backwards on B and forwards on A....). So, at its simplest, c_1=a_1, c_2=b_1, c_3=a_2, c_4=b_2, and so forth. So c_200 (the 200th line in the virtual volume C) is just b_100, and c_201 is a_101.
Once this mapping is set, then the defragging becomes no more complicated than usual. The software thinks of the two drives as one big drive, and defrags it as such. If, in the process of defragging, line c_201 needs to be moved to line c_194, it will be moved from disk A to disk B but the defragging software is thinking of moving c_201 to c_194 and not a_101 to b_97. The mapping is handled automatically by the raid controller.
edit: This whole post was talking only about RAID 0.