# Dyski w RAID, LVM2

## tallica

Witam,

za jakiś czas będę miał dwa dyski Seagate ES.2 250GB 32MB, z przeznaczeniem na RAID pod kontrolą Gentoo.

W związku z tym mam kilka pytań:

1. Czy użyć pseudo hardware'owego biosu z płyty głównej (ASUS P5B Deluxe) czy RAID programowy Linuksa (zalecają omijać RAIDy na płytach)?

2. Jak wygląda wydajność RAIDu na płycie względem RAIDu programowego, czy są jakieś znaczące różnice?

3. Czy RAID programowy jest bezpieczny? Posiada jakąś korekcje błędów?

Na razie tyle, będę wdzięczny za wszelkie sugestie.

----------

## SlashBeast

Generalnie fakeraid czyli taki biosowy jest mniej wydajny od linuksowego programowego (md). Pozatym md jest dużo bardzej elastyczny.

----------

## timor

Masz jakiś dowód na poparcie tego co piszesz? Benchmarki? Tak z ciekawości bym zerknął  :Wink: 

----------

## mirekm

Nie ma żadnego z tego prostego powodu, że większość tzw fake raidów pod linuksem nie działa w sposób natywny (tzn przez bios lub dedykowane drivery), ale wykorzystywany jest mechanizm jądra. Potrzebny programik dmraid do zainicjowania mechanizmów jądra przed zainstalowaniem systemów plików (tutj kłania się initrd).

Jeżeli używasz tylko linuksa to lepszym rozwiązaniem będzie wykorzystywanie standardowego programowego raida, wtedy możesz wykorzystać część dysku w raidzie 0, a część w raid 1. Tam gdzie ważne dane mirroring (a co za tym idzie wolniejsze operacje dyskowe), a tam gdzie dane nie są tak istotne ale liczy się bardziej prędkość (np portage, tmp itd) stripping.

Natomiast w przypadku, gdy korzystasz i z windowsa i linuksa nie obędzie się bez dmraida.

----------

## tallica

Jak pisałem na początku, tylko Linux będzie na tych dyskach. O tym, że będę mógł użyć i stripping i mirroring wiem  :Wink:  Interesuje mnie jeszcze jak wygląda awaryjność md?

----------

## SlashBeast

 *timor wrote:*   

> Masz jakiś dowód na poparcie tego co piszesz? Benchmarki? Tak z ciekawości bym zerknął 

 

Subiektywne odczucie, uzywalem NVRAID i MD.

 *Michal_86 wrote:*   

> Jak pisałem na początku, tylko Linux będzie na tych dyskach. O tym, że będę mógł użyć i stripping i mirroring wiem  Interesuje mnie jeszcze jak wygląda awaryjność md?

 

A jak ma wyglądać? Dla mnie wszystko gra i bucy, nie mam problemów. Na pewno nigdy nie miałem syndromu XFS'a (sic!) w stylu nagly pad zasilania a potem niektore pliki znikneły, inne pomieszały między soba zawartosc itp.

Arfrever: Ortografia

SlashBeast: Przecz inkwizycji!Last edited by SlashBeast on Thu Jan 17, 2008 6:57 pm; edited 1 time in total

----------

## tallica

 *SlashBeast wrote:*   

> A jak ma wyglądać? Dla mnie wszystko gra i bucy, nie mam problemów. Napewno nigdy nie miałem syndromu XFS'a (sic!) w stylu nagly pad zasilania a potem niektore pliki znikneły, inne pomieszały między soba zawartosc itp.

 

Najlepiej jakby w ogóle nie wyglądała  :Wink:  Jeżeli przy zaniku napięcia/kernel panic itp nie ma problemu no to znaczy, że jest bardzo dobrze... A swoją drogą jakieś testy porównawcze by się przydały. Jak już będę miał dyski sprawdzę jak to wygląda w praktyce...

----------

## SlashBeast

Az z nudow sprawdzilem, 2x 80G ata100 seagate, barakuda z serii chyba 7200,7. pojedyncze dyski na testach hdparmu mialy 53MBps natomiast /dev/md0 ma 63MBps co daje nam prawie 20% wzrost. czasu dostepu nie sprwadzalem. Tak po prostu sobie zrobilem tescik.

Arfrever: Ortografia

SlashBeast: No, życie. Precz inkwizycji!Last edited by SlashBeast on Thu Jan 17, 2008 7:00 pm; edited 1 time in total

----------

## tallica

Na początku przyszłego tygodnia będę miał dyski  :Smile:  Zrobię testy i zobaczymy jak to będzie działać.

----------

## tallica

Na szybko stworzyłem RAID0 i RAID1 na dwóch dyskach ST3500320AS 500GB 7200.11

md1 - RAID1

md2 - RAID0

Wyniki:

```
# hdparm -tT /dev/md1

/dev/md1:

 Timing cached reads:   3448 MB in  2.00 seconds = 1723.77 MB/sec

 Timing buffered disk reads:  272 MB in  3.01 seconds =  90.32 MB/sec

# hdparm -tT /dev/md2

/dev/md2:

 Timing cached reads:   3378 MB in  2.00 seconds = 1689.28 MB/sec

 Timing buffered disk reads:  576 MB in  3.01 seconds = 191.59 MB/sec
```

----------

## Bialy

A moglbys jeszcze hdparm'a na jednym dysku zapuscic?

Tak z ciekawosci bym zerknal  :Wink: 

----------

## tallica

 *Bialy wrote:*   

> A moglbys jeszcze hdparm'a na jednym dysku zapuscic?

 

```
# hdparm -tT /dev/sdb

/dev/sdb:

 Timing cached reads:   3502 MB in  2.00 seconds = 1751.57 MB/sec

 Timing buffered disk reads:  278 MB in  3.02 seconds =  92.15 MB/sec
```

----------

## Bialy

To teraz nie wiem co o tym myslec  :Confused: 

----------

## tallica

 *Bialy wrote:*   

> To teraz nie wiem co o tym myslec 

 

tzn ?

----------

## SlashBeast

Ja to mam teraz niezłe ździwko. na dwóch barakudach ata100 miałem wzrost +20%, a tutaj widze, wzrost +/- 100%.

----------

## tallica

 *SlashBeast wrote:*   

> Ja to mam teraz niezłe ździwko. na dwóch barakudach ata100 miałem wzrost +20%, a tutaj widze, wzrost +/- 100%.

 

hmmm... według mnie to normalne, że przy RAID0 wydajność wzrasta o ok. 100%... wystarczy poszukać testów. Jeżeli chodzi o wzrost +20%, nie podłączyłeś przypadkiem dysków do jednego kontrolera ATA?

----------

## SlashBeast

a no był to jeden kontroler. Pewnie tutaj jest problem. >_< teraz pozbyłem się dysków 80G więc nie mam jak tego znowu sprawdzić na dwóch kanałach IDE.

----------

## Bialy

Aha md1 to mirror, a md2 sriping?

----------

## SlashBeast

Tak napisał.

----------

## tallica

 *Bialy wrote:*   

> Aha md1 to mirror, a md2 sriping?

 

tak:

/dev/md1 - RAID1 (mirroring)

/dev/md2 - RAID0 (striping)

EDIT:

A tak wygląda raid/partycje przygotowane dla Gentoo x86_64, pełne debugowanie -ggdb -Wall (splitdebug)

Na razie podstawowy system, GNOME i inne duperele  :Wink: 

```
# cat /proc/mdstat 

Personalities : [raid0] [raid1] 

md1 : active raid1 sdc1[1] sdb1[0]

      112320 blocks [2/2] [UU]

      

md3 : active raid1 sdc3[1] sdb3[0]

      4200896 blocks [2/2] [UU]

      

md5 : active raid0 sdc5[1] sdb5[0]

      20980608 blocks 64k chunks

      

md6 : active raid0 sdc6[1] sdb6[0]

      2120320 blocks 64k chunks

      

md7 : active raid1 sdc7[1] sdb7[0]

      41953600 blocks [2/2] [UU]

      

md8 : active raid0 sdc8[1] sdb8[0]

      4208768 blocks 64k chunks

      

md9 : active raid1 sdc9[1] sdb9[0]

      4200896 blocks [2/2] [UU]

      

md10 : active raid0 sdc10[1] sdb10[0]

      20980608 blocks 64k chunks

      

md11 : active raid0 sdc11[1] sdb11[0]

      2120320 blocks 64k chunks

      

unused devices: <none>

# df -h

System plików         rozm. użyte dost. %uż. zamont. na

/dev/md/3             4,0G  202M  3,6G   6% /

udev                   10M  256K  9,8M   3% /dev

/dev/md/1             107M  7,9M   93M   8% /boot

/dev/md/5              20G  3,3G   16G  18% /usr

/dev/md/6             2,1G  220M  1,9G  11% /usr/portage

/dev/md/7              40G  216M   38G   1% /home

/dev/md/8             4,0G  463M  3,3G  13% /opt

/dev/md/9             4,0G  328M  3,5G   9% /var

/dev/md/10             20G  1,3G   18G   7% /var/tmp

/dev/md/11            2,0G   68M  1,9G   4% /tmp

shm                  1006M     0 1006M   0% /dev/shm

# fdisk -l /dev/sdb

Disk /dev/sdb: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x63f551f6

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          14      112423+  fd  Linux raid autodetect

/dev/sdb2              15         276     2104515   82  Linux swap / Solaris

/dev/sdb3             277         799     4200997+  fd  Linux raid autodetect

/dev/sdb4             800       60801   481966065    5  Extended

/dev/sdb5             800        2105    10490413+  fd  Linux raid autodetect

/dev/sdb6            2106        2237     1060258+  fd  Linux raid autodetect

/dev/sdb7            2238        7460    41953716   fd  Linux raid autodetect

/dev/sdb8            7461        7722     2104483+  fd  Linux raid autodetect

/dev/sdb9            7723        8245     4200966   fd  Linux raid autodetect

/dev/sdb10           8246        9551    10490413+  fd  Linux raid autodetect

/dev/sdb11           9552        9683     1060258+  fd  Linux raid autodetect
```

----------

## SlashBeast

Jak dla mnie trochę zbyt wiele partycji, swoją drogą warto dawać /tmp i /var/tmp oddzielnie?

----------

## tallica

 *SlashBeast wrote:*   

> Jak dla mnie trochę zbyt wiele partycji, swoją drogą warto dawać /tmp i /var/tmp odzielnie?

 

/ - RAID1, jak jeden dysk padnie to jeszcze będzie możliwość zalogowania

/var/tmp - RAID0, ze względu na szybkość kompilacji, a dlaczego 20GB? żeby mieć miejsce na ew. zrzucenie płyty DVD, obróbkę itd..., distfiles również znajduje się w tym katalogu

/tmp - RAID0, ze względu na szybkość

/usr/portage - RAID0, wiadomo  :Wink:  dodatkowo system plików to raiserfs

/var - RAID1 - ważne dane, np. tabele MySQL itp.

Poza tym /usr /opt - RAID0 - szybkość

EDIT:

Jakbym nie korzystał z RAID0/1 ilość partycji uległaby zredukowaniu.

EDIT2:

Patrząc na to HOWTO: http://www.gentoo.org/doc/pl/gentoo-x86+raid+lvm2-quickinstall.xml nie jest wcale tak źle  :Laughing: 

P.s Zastanawiam się nad użyciem LVM2 dla reszty dysków, korzysta ktoś? Jestem ciekaw jak to wygląda w praktyce.

----------

## SlashBeast

Nie wygodniej było by mieć /tmp i /var/tmp na jednej partycji? U mnie /tmp to 32Megowy ramdysk, a /var/tmp to link do /tmp. dodatkowo każdy user ma własny katalog tmp w swoim home, /tmp jest montowany z nosuid,noexec, a kompilacje odbywają się w /root/tmp/

----------

## tallica

 *SlashBeast wrote:*   

> Nie wygodniej było by mieć /tmp i /var/tmp na jednej partycji? U mnie /tmp to 32Megowy ramdysk, a /var/tmp to link do /tmp. dodatkowo każdy user ma własny katalog tmp w swoim home, /tmp jest montowany z nosuid,noexec, a kompilacje odbywają się w /root/tmp/

 

hmm w sumie, nie jest to złe rozwiązanie. Tylko nie wiem czy jest sens w moim przypadku tworzyć oddzielne tmp dla userów? Zamiast oddzielnej partycji dla /usr/portage, mogę stworzyć "Sparse File" http://gentoo-wiki.com/TIP_Speeding_up_portage

----------

## SlashBeast

To już lepiej trzymaj portage na squashfs z lzma.

----------

## tallica

 *SlashBeast wrote:*   

> To już lepiej trzymaj portage na squashfs z lzma.

 

 *http://pl.wikipedia.org/wiki/SquashFS wrote:*   

> Squashfs (.sfs) jest wolnym, kompresowalnym systemem plików tylko do odczytu, przeznaczony dla jądra Linux.

 

----------

## SlashBeast

Na googlach widzilem initskrypt który w połączeniu z unionfs czy aufs robił writable /usr/portage, przy wylaczaniu systemu tworzyl nowy squashfs obraz z aktualnym portage.

http://gentoo-wiki.com/HOWTO_VERY_small_Portage_Tree_with_SquashFS_and_UnionFS

----------

## tallica

 *SlashBeast wrote:*   

> Na googlach widzilem initskrypt który w połączeniu z unionfs czy aufs robił writable /usr/portage, przy wylaczaniu systemu tworzyl nowy squashfs obraz z aktualnym portage.
> 
> http://gentoo-wiki.com/HOWTO_VERY_small_Portage_Tree_with_SquashFS_and_UnionFS

 

ee, jednak wole sparse file stworzyć, 500MB plik i sprawa załatwiona.

----------

## tallica

Jeżeli jest ktoś zainteresowany, to w tym temacie są dodatkowe testy zapisu/odczytu:

https://forums.gentoo.org/viewtopic-t-662924.html

----------

