0

We have a debian linux server which has a single 120GB SSD and 2x2TB HDDs as RAID 1. We now have to move to another server which has 2x240GB SSD and a single 2TB HDD. The aim is to move the current 120GB system drive SSD to a 240GB RAID1 SSD and move the data from the current 2TB RAID1 HDD to the single 2TB HDD.

Moving the 2TB wont be a problem, so I'm focusing my question to the system drive SSD. Our current setup is somehow complicated. The 120GB SSD has the following partitions:

fdisk -l /dev/sda

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          66      523264   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              66       14594   116696064   83  Linux

and fstab tells us:

cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system>                         <mount point>   <type>  <options>       <dump>  <pass>
        proc                            /proc           proc    defaults          0       0
        /dev/mapper/vgdebian-root       /               ext4    errors=remount-ro 0       1
        /dev/mapper/vgdebian-swap       none            swap    sw                0       0
        /dev/sda1                       /boot           ext3    defaults          0       2

So the boot stuff with kernel and a busybox linux with dropbear is all on /dev/sda1. Then dropbear helps to decrypt the /dev/sda2 partition, which is enrypted by cryptsetup and managed by LVM.

I'm not sure which is the best way to move all of /dev/sda to a newly created SDD-RAID1? Should I first make a dd-copy to one of the new disks, enlarge the /dev/sda2 partition (each of the new SSDs is now 240GB instead of 120GB) and make dropbear aware of the new 240GB SSD? Should I then start copying all of the first 240GB SDD to the second one and init a mdadm create array command?

Or should I create a clean /dev/md0 array on the new 240GB SSDs and then copying the whole old drive to this maybe /dev/md0 named device?

How would dropbear/busybox react on the RAID? It might be that the new /dev/sda1 has to be copied to /dev/sdb1 so that dropbear/busybox can be bootet from both new SSDs. The RAID1 would exists first when booting the decrypted LVM debian - am I right?

Maybe someone can give me some hints if it is possible to move such a enrypted system anyway. Thanks for any help.

Edit: I transfered all 120GB of our old SSD to one of the new 240GB SSD of the new server via dd command (tut here: https://library.linode.com/migration/ssh-copy). Then I changed some config to dropbear and reassembled initramfs and rebootet - the system works as usual on new server.

Now I needed to resize the image of the old SSD so I enlarged /dev/sda2 to maximum, then I enlarged physical volume, logical volume and later the file system. I rebooted and everthing works fine (tut here: http://ubuntuforums.org/showthread.php?p=4530641).

Last thing: moving the whole stuff from single SSD to RAID1. Any hints someone?

Edit2: Currently I'm trying to get the RAID1 thing running. After the old system works on one of the 240GB SSDs there are two tutorials I found for migrating from a non-RAID system to RAID1: pug.org/mediawiki/index.php/Vorhandenes_MD-RAID1_im_laufenden_Betrieb_verschl%C3%BCsseln and howtoforge.com/software-raid1-grub-boot-debian-etch-p2. Both work from a running system. I use the first tut for the LUKs stuff and the second one for the rest - hope it will work out.

2
  • You should have created the RAID-1 first, and THEN moved the data. Dec 12, 2013 at 19:09
  • Ok, so how does the steps look like: booting new server in rescue system, assemble both 240GB-SSDs /dev/sda and /dev/sdb to new RAID1 array as /dev/md0 (for /boot) and /dev/md1 (for LUKS)? After that should I tranfser via dd-copy and ssh from the old server the old SSD's /dev/sda1 to /dev/md0 and /dev/sda2 (with LUKS on it) to /dev/md1? Dec 12, 2013 at 20:43

1 Answer 1

0

Ok, I got it now running!

After I had the old SSD copied via dd over to one of the new SSDs, resized it to the new 240GB size as described above, I just had the problem to init the RAID1. I found the two guides mentioned in my Edit2 post but actually it was this tutorial:

http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-lvm-system-incl-grub2-configuration-debian-squeeze-p3

So I had to setup a new RAID1 with missing second drives (see tut) as follows:

/dev/sdb1  gets  /dev/md0   for   /boot
/dev/sdb2  gets  /dev/md1   for   /

Actually the /dev/md1 is holding the cryptsetup luks container, which then contains the whole LVM stuff and on that we have the actual file system:

 /dev/sdb2 -> /dev/md1 -> cryptsetup/LUKS -> LVM -> ext4

After creating md0/md1 I copied sda1 with the working /boot onto md0. Then I created new cryptsetup luks stuff on md1. The I extended my existing VGroup onto md1 and moved the Volume Group to /dev/md1 using pvmove (this is all LVM stuff).

I needed to do some chroot'ing for reinstalling/updating grub2, but this might be just in my case. Afterward I deleted the whole /dev/sda and added it to mdadm, so it got nicely resynched.

Reboot worked after 2-3 tries, the whole thing is running now again - after 12h of work :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.