# RAID + LVM + szyfrowanie - poprawna metoda

## MiChaSSs

Hej,

Ponieważ w najbliższym czasie chciałbym postawić system oparty na RAID 1, LVM oraz szyfrowaniu zacząłem zgłębiać temat i trafiłem na kilka rzeczy których nie rozumiem. Jak powinien wyglądać poprawny warstwowy schemat takiej konfiguracji? W internecie najczęsciej natrafiałem na coś takiego:

```

--------------------------------------

             logical volume           |

--------------------------------------

             volume group             |

--------------------------------------

             cryptosetup              |

--------------------------------------

                RAID 1                |

--------------------------------------

     /dev/sda     |     /dev/sdb      |

--------------------------------------

```

(źródł: http://jasonwryan.com/blog/2012/02/11/lvm/ podobnie jest tu http://en.gentoo-wiki.com/wiki/Root_filesystem_over_LVM2,_DM-Crypt_and_RAID)

Nie rozumiem, dlaczego RAID jest przed szyfrowaniem i LVM-em. Aktualnie nie mam drugiego dysku do RAID-a i wpadł mi do głowy pomysł takiego schematu, który dla mnie wydaje się bardziej logiczny.

```

---------------------------------------------------------------------------------------------

                                             RAID 1                                          |

---------------------------------------------------------------------------------------------

              logical volume          |               |                /dev/sdb              |

--------------------------------------                 --------------------------------------

              volume group            |

--------------------------------------

               cryptosetup            |

--------------------------------------

                /dev/sda              |

--------------------------------------

```

Po lewej stronie znajduje się system, który mogłbym postawić już teraz, a gdy przyjdzie mi dysk zbudować macierz i ją zsynchronizować i mieć kopie /dev/sda na dysku /dev/sdb. Co o tym sądzicie, jest to poprawne podejście? Można tak zrobić? Jeśli nie, to czy moglibyście mi wytłumaczyć dlaczego? Czy można zainstalować system z pierwszego schematu majac tylko jeden dysk a poźniej odbudować macierz? Dziękuję za pomoc, pozdrawiam MD

----------

## SlashBeast

Mozesz stworzyc raid1 z jednym dyskiem oznaczonym jako missing, jak sie dorobisz drugiego dysku to go po prostu dodasz. Tutaj masz howto rootfs na szyfrowanym lvm http://www.funtoo.org/wiki/Rootfs_over_encrypted_lvm

Z raidem to bedzie raptem jedna zmianna, w parametrach bootu dopiszesz 'softraid' i posklada tego raida przed szukaniem voluminow LVM,

Taki tip: nie uzywaj metadata 0.9 w ZADNYM wypadku, nie raz moze Ci poskladac raida np. z sda2 i sdb, mimo, ze powinno byc np. sda2 i sdb2. Uzyj np. 1.0 dla /boot (extlinux go wspiera) i reszta np. 1.2.

----------

## MiChaSSs

 *SlashBeast wrote:*   

> Mozesz stworzyc raid1 z jednym dyskiem oznaczonym jako missing (...)

 

Czy mógłbyś mi proszę napisać przykład jak to zrobić? Co ze schematami z pierwszego postu, dlaczego powinno się zrobić RAIDa przed crypto oraz LVM-em?

---------------------------------

edit 30.06.2012 13:38

Znalazłem odpowiedź na pierwsze pytanie tutaj: http://en.wikipedia.org/wiki/Mdadm (Quick reference -> Create an array).

```

mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda1 missing <---- boot

mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda2 missing <---- LVM

```

Pytanie nr 1 -> czy przed dodaniem partycji która aktualnie jest "missing" (/dev/sdb2 dla LVM) będę musiał wykonać kod poniżej?

```
dd if=/dev/urandom of=/dev/sdb2 bs=100M
```

Zakładam, że unrandom został wykonany na /dev/sda2.

Pytanie nr 2 -> czy gruba będę musiał manualnie zainstalować w MBR /dev/sdb przed dodaniem do RAID?

Pytanie nr 3 -> w http://en.gentoo-wiki.com/wiki/Root_filesystem_over_LVM2,_DM-Crypt_and_RAID najpierw jest tworzony RAID1

```
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
```

a następnie

```
dd if=/dev/urandom of=/dev/md2 bs=100M
```

Czy zamiast tego można zrobić coś takiego (zakładam brak /dev/sdb):

```
dd if=/dev/urandom of=/dev/sda2 bs=100M
```

a później

```
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 missing
```

Wg mnie obydwie czynności robią to samo i nie powinno mieć znaczenia której metody użyjemy. Mam racje?

Pytanie nr 4 -> rozumiem, ze /boot nie wolno szyfrować?

Pytanie nr 5 -> proszę jeszcze o wytłumaczenie schematów, dlaczego powinno używać się schematu nr 1 a nie nr 2?.

----------

