Difference between revisions of "Mdadm"
Tag: visualeditor-switched |
Tag: visualeditor |
||
(One intermediate revision by the same user not shown) | |||
Line 25: | Line 25: | ||
WIP! | WIP! | ||
− | |||
*Tweaks | *Tweaks | ||
*create, assemble, monitor, build, grow, manage | *create, assemble, monitor, build, grow, manage | ||
*exempel | *exempel | ||
+ | |||
+ | == Create == | ||
+ | Att skapa en ny mdadm är är väldigt strait-forward. Du skapar en array, väljer vilka diskar du ska slå ihop och sedan till vilken raidtyp. | ||
+ | |||
+ | När du bygger ihop din raid så kan du köra <code>cat /cat/mdstat</code> för att få fram status från bygget. | ||
+ | |||
+ | === Skapa array: === | ||
+ | <code>mdadm --create /dev/md'''X'''</code> | ||
+ | |||
+ | <code>mdadm --monitor /dev/md'''X'''</code> | ||
+ | |||
+ | === Skapa Raid-0 === | ||
+ | <code>mdadm --create --verbose /dev/md'''X''' --level=stripe --name '''XXX '''--raid-devices='''X''' /dev/sd'''X'''1 /dev/sd'''X'''1</code> | ||
+ | |||
+ | === Skapa raid-1 === | ||
+ | <code>mdadm --create --verbose /dev/md'''X '''--level=mirror --name '''XXX '''--raid-devices='''X''' /dev/sd'''X'''1 /dev/sd'''X'''1</code> | ||
+ | |||
+ | ...Med spare: | ||
+ | |||
+ | <code>mdadm --create --verbose /dev/md'''X'''--level=mirror --name '''XXX '''--raid-devices='''X'''/dev/sd'''X'''1''' '''/dev/sd'''X'''1 --spare-device=1 /dev/sd'''X'''</code> | ||
+ | |||
+ | === Skapa Raid-4/5/6 === | ||
+ | <code>mdadm --create --verbose /dev/md'''X''' --level='''4/5/6''' --name '''XXX '''--raid-devices='''X''' /dev/sd'''X'''1 /dev/sd'''X'''1 /dev/sd'''X'''1 --spare-devices='''X''' /dev/sd'''X'''1</code> | ||
+ | |||
+ | === Skapa Raid-10 === | ||
+ | <code>mdadm --create --verbose /dev/md'''X''' --level raid10 --name '''XXX''' --raid-devices='''X''' /dev/sd'''X'''1 /dev/sd'''X'''1 /dev/sd'''X'''1 /dev/sd'''X'''1</code> | ||
+ | |||
+ | === Spara din raid och skapa filsystem === | ||
+ | Kolla i mdastat<code>cat /cat/mdstat </code>f ör att se om din raid är färdigbyggd och för att se status. | ||
+ | |||
+ | '''OM''' din raid är färdigbyggd så kör vi följande kommando för att spara ner vår conf. Om du kör någon annan dist, kolla vart din mdadm.conf är placerad och skriv till den. '''Detta får inte göras förens din raid är färdigbyggd!! ''' | ||
+ | |||
+ | '''RHEL/CentOS/Fedora:''' | ||
+ | |||
+ | <code>mdadm --detail --scan >> /etc/mdadm.conf</code> | ||
+ | |||
+ | Nu kan vi skapa ett filsystem på vår raid | ||
+ | |||
+ | '''ext4:''' | ||
+ | |||
+ | <code>mkfs -t ext4ext4 /dev/</code>md'''X ''' | ||
+ | |||
+ | '''XFS:''' | ||
+ | |||
+ | För XFS behöver du speca SU som är samma som mdadm-raidens chunk size. Föra att få fram chunk size kan du köra <code>mdadm --detail /dev/md'''X'''</code> | ||
+ | |||
+ | Du behöver också speca sw, vilket är hur många data-diskar du har (ej spares etc). | ||
+ | * RAID 0 med 2 diskar: 2 data diskar (n) | ||
+ | * RAID 1 med 2 diskar: 1 data disk (n/2) | ||
+ | * RAID 10 med 10 diskar: 5 data diskar (n/2) | ||
+ | * RAID 5 med 6 diskar (inga spares): 5 data diskar (n-1) | ||
+ | * RAID 6 med 6 diskar (inga spares): 4 data diskar (n-2) | ||
+ | <code>mkfs -t xfs -d su='''X'''k -d sw='''X''' /dev/md'''X'''</code> | ||
+ | |||
+ | Tex: raid 5 med 4 diskar med en chunksize på 64k: | ||
+ | |||
+ | <code>mkfs -t xfs -d su=64k -d sw=3 /dev/md'''X'''</code> | ||
==Flytta en mdadm raid== | ==Flytta en mdadm raid== | ||
Line 39: | Line 95: | ||
2: koppla in dina diskar och starta upp servern igen. | 2: koppla in dina diskar och starta upp servern igen. | ||
− | 3: Kolla så alla diskar är hittade under /dev/. Är alla där så kan du köra antingen | + | 3: Kolla så alla diskar är hittade under /dev/. Är alla där så kan du köra antingen <code>cat /proc/mdstat</code> eller <code>ls -l /dev/md/<RAIDNAMN> (tabba fram)</code> för att få fram vilken md-device din raid ligger som just nu. |
− | 4. Säg att din raid ligger hittad som /dev/md127, kör då # mdadm --detail /dev/md127. När detta körs bör du får fram all info du behöver. Dvs '''Version, Namn '''och''' UUID'''. | + | 4. Säg att din raid ligger hittad som /dev/md127, kör då <code># mdadm --detail /dev/md127</code>. När detta körs bör du får fram all info du behöver. Dvs '''Version, Namn '''och''' UUID'''. |
− | 5. Kör kommandot: | + | 5. Kör kommandot: <code>echo >> ARRAY /dev/md'''X''' metadata='''"Version"''' name='''"namn"''' UUID='''"uuid" '''/etc/mdadm.conf</code> '''NOTICE: '''Du får lägga din array vart du vill, även om md127 var där den hittades så kan du lägga den på tex /dev/md0. Se bara till så att md0 inte är upptagen. Detta kommando lägger till din "nya" array i mdadm-confen som läses in varje uppstart. |
− | 6. Reboot och | + | 6. Reboot och <code>cat /proc/mdstat</code> för att se hur din raid bygger ihop sig. |
7. När raiden har byggt ihop sig så kan du mounta, jag föredrar att mounta via fstab och UUID. Exempel på fstab conf: | 7. När raiden har byggt ihop sig så kan du mounta, jag föredrar att mounta via fstab och UUID. Exempel på fstab conf: | ||
− | < | + | |
+ | <code>UUID='''"RaidUUID" ''' /mount/point xfs defaults 0 0</code> | ||
Latest revision as of 08:56, 24 June 2015
mdadm är ett öppet verktyg för att skapa, hantera och monitorera md-raids i Linux. De flesta Debian och Redhat-baserade system har paketet installerat per default men bör annars finnas i officiella repos om det skulle fattas.
De flesta kommersiella NASar som tex Synology använder sig av Mdadm för att hantera deras raids, detta gör det möjligt att flytta över raids och synca till och från olika enheter som har stöd för verktyget.
Contents
Installation
sudo apt-get install mdadm
sudo yum install mdadm
Raidtyper
Mdadm har stöd för standard raidtyper såsom:
- Raid 0
- Raid 1
- Raid 4
- Raid 5
- Raid 6
- Raid 10
Mdadm har även stöd för "non-raid configurations" (Tänk JBOD?):
- Linear – sammanfogar ett antal enheter till en enda stor MD-enhet.
- Multipath – ger flera vägar med failover till en enda enhet.
- Faulty – skapar ett antal felscenarior (tex läs/skrivfel) för test.
- Container – en grupp av enheter som hanteras som en enda enhet, där man kan bygga RAID-system.
WIP!
- Tweaks
- create, assemble, monitor, build, grow, manage
- exempel
Create
Att skapa en ny mdadm är är väldigt strait-forward. Du skapar en array, väljer vilka diskar du ska slå ihop och sedan till vilken raidtyp.
När du bygger ihop din raid så kan du köra cat /cat/mdstat
för att få fram status från bygget.
Skapa array:
mdadm --create /dev/mdX
mdadm --monitor /dev/mdX
Skapa Raid-0
mdadm --create --verbose /dev/mdX --level=stripe --name XXX --raid-devices=X /dev/sdX1 /dev/sdX1
Skapa raid-1
mdadm --create --verbose /dev/mdX --level=mirror --name XXX --raid-devices=X /dev/sdX1 /dev/sdX1
...Med spare:
mdadm --create --verbose /dev/mdX--level=mirror --name XXX --raid-devices=X/dev/sdX1 /dev/sdX1 --spare-device=1 /dev/sdX
Skapa Raid-4/5/6
mdadm --create --verbose /dev/mdX --level=4/5/6 --name XXX --raid-devices=X /dev/sdX1 /dev/sdX1 /dev/sdX1 --spare-devices=X /dev/sdX1
Skapa Raid-10
mdadm --create --verbose /dev/mdX --level raid10 --name XXX --raid-devices=X /dev/sdX1 /dev/sdX1 /dev/sdX1 /dev/sdX1
Spara din raid och skapa filsystem
Kolla i mdastatcat /cat/mdstat
f ör att se om din raid är färdigbyggd och för att se status.
OM din raid är färdigbyggd så kör vi följande kommando för att spara ner vår conf. Om du kör någon annan dist, kolla vart din mdadm.conf är placerad och skriv till den. Detta får inte göras förens din raid är färdigbyggd!!
RHEL/CentOS/Fedora:
mdadm --detail --scan >> /etc/mdadm.conf
Nu kan vi skapa ett filsystem på vår raid
ext4:
mkfs -t ext4ext4 /dev/
mdX
XFS:
För XFS behöver du speca SU som är samma som mdadm-raidens chunk size. Föra att få fram chunk size kan du köra mdadm --detail /dev/mdX
Du behöver också speca sw, vilket är hur många data-diskar du har (ej spares etc).
- RAID 0 med 2 diskar: 2 data diskar (n)
- RAID 1 med 2 diskar: 1 data disk (n/2)
- RAID 10 med 10 diskar: 5 data diskar (n/2)
- RAID 5 med 6 diskar (inga spares): 5 data diskar (n-1)
- RAID 6 med 6 diskar (inga spares): 4 data diskar (n-2)
mkfs -t xfs -d su=Xk -d sw=X /dev/mdX
Tex: raid 5 med 4 diskar med en chunksize på 64k:
mkfs -t xfs -d su=64k -d sw=3 /dev/mdX
Flytta en mdadm raid
Lättast om du sparar din /etc/mdadm.conf eller ARRAY-rader från konfen och flyttar med den/dessa till din nya maskin. Skulle inte det fungera så är det inte hela världen.
Vi börjar med worst-case, du har inte sparat conf eller ARRAY-info som UUID, namn etc:
1: Installera mdadm på server B och stäng av servern
2: koppla in dina diskar och starta upp servern igen.
3: Kolla så alla diskar är hittade under /dev/. Är alla där så kan du köra antingen cat /proc/mdstat
eller ls -l /dev/md/<RAIDNAMN> (tabba fram)
för att få fram vilken md-device din raid ligger som just nu.
4. Säg att din raid ligger hittad som /dev/md127, kör då # mdadm --detail /dev/md127
. När detta körs bör du får fram all info du behöver. Dvs Version, Namn och UUID.
5. Kör kommandot: echo >> ARRAY /dev/mdX metadata="Version" name="namn" UUID="uuid" /etc/mdadm.conf
NOTICE: Du får lägga din array vart du vill, även om md127 var där den hittades så kan du lägga den på tex /dev/md0. Se bara till så att md0 inte är upptagen. Detta kommando lägger till din "nya" array i mdadm-confen som läses in varje uppstart.
6. Reboot och cat /proc/mdstat
för att se hur din raid bygger ihop sig.
7. När raiden har byggt ihop sig så kan du mounta, jag föredrar att mounta via fstab och UUID. Exempel på fstab conf:
UUID="RaidUUID" /mount/point xfs defaults 0 0
OBS Vet inte om det står något värdefullt här men det kan nog dut avgöra bättre //Alex
http://h3x.no/2011/07/09/tuning-ubuntu-mdadm-raid56