Εγκατάσταση server σε RAID

Ξεκίνησε από alkisg, 29 Ιαν 2015, 07:30:51 ΜΜ

« προηγούμενο - επόμενο »

alkisg

Δοκίμασα σήμερα να εγκαταστήσω ένα μηχάνημα σαν dedicated web server, με RAID κλπ, και κρατάω απλά προσωπικές σημειώσεις, αλλά ίσως κάτι να φανεί χρήσιμο σε κάποιον οπότε τις κρατάω δημόσια...

3 δίσκοι 1 TB ο καθένας, σε RAID 5. Το αποτέλεσμα είναι διπλή ταχύτητα (300 MB/sec), διπλή χωρητικότητα (2 TB σύνολο), και ασφάλεια δεδομένων στην περίπτωση αποτυχίας υλικού ενός από τους δίσκους.

Κανονικά θέλει Ubuntu server CD, αλλά εγώ ξεκίνησα με το 14.04 desktop amd64 CD για να εγκατασταθεί και το γραφικό περιβάλλον, κάπου θα χρειαστεί. Οπότε έτσι χρειάστηκαν διάφορα κόλπα γιατί το desktop CD δεν υποστηρίζει RAID...

Δεν έκανα ολόκληρους τους δίσκους σε RAID αλλά τα μεμονωμένα partitions μεταξύ τους, γιατί με αυτόν τον τρόπο είναι πιο ευέλικτο και μπορεί να γίνει ακόμα κι αν οι δίσκοι έχουν διαφορετικό μέγεθος μεταξύ τους.

Από gparted, δημιουργία GPT πίνακα κατατμήσεων και 4 partitions σε κάθε δίσκο. Όλα τα partitions διαμορφώθηκαν ως "cleared" (χωρίς κανένα σύστημα αρχείων), και ειδικά στο sda1 τέθηκε και σημαία grub_boot, γιατί στο GPT ο grub χρειάζεται ένα τέτοιο partition για να εγκατασταθεί. Εάν κάποια στιγμή χρησιμοποιήσουμε UEFI, αυτό το partition θα χρειαστεί ως EFI system partition.
Τα partitions σε όλους τους δίσκους είχαν το ίδιο μέγεθος, 10 GB, 300 GB, 300 GB, 350 GB.

Εγκατάσταση του πακέτου υποστήριξης RAID:
apt-get --no-install-recommends install mdadm

Το sda1 (10 GB) έμεινε άδειο και εκτός RAID για τον grub. Τα sdb1 και sdc1 (10 + 10 GB) ενώθηκαν σε RAID0 swap:
mdadm --create --verbose --level=0 --raid-devices=2 /dev/md0 /dev/sdb1 /dev/sdc1
mkswap -L Swap /dev/md0

Διαμόρφωση Ubuntu1 partition, 300+300 GB, σε RAID5. Εκεί βάζουμε τον web server. Δεν χρησιμοποιούμε ξεχωριστό /home αφού τα σημαντικά δεδομένα είναι στο /var/www, όχι στο /home.
mdadm --create --verbose --level=5 --raid-devices=3 /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2
mkfs.ext4 -b 4096 -E stride=128,stripe-width=256 /dev/md1

Το ίδιο και για το Ubuntu2 partition, 300+300 GB, σε RAID5, στο οποίο θα γίνεται περιοδικό rsync του πρώτου Ubuntu1 partition, για την περίπτωση προβλήματος software, διαγραφής αρχείων κλπ, και σαν backup αλλά και για εκκίνηση από αυτό για ελαχιστοποίηση του downtime.

Το 3ο partition μεγέθους 350+350 GB έγινε και πάλι σε RAID5 για τοποθέτηση άσχετων δεδομένων.

Εγκατάσταση Ubuntu κανονικά από τον installer. Όταν ολοκληρωθεί (λέει επιτυχώς), χρειάζεται επιπλέον να μπει το πακέτο mdadm στο /target, και να εγκατασταθεί ο grub στο /dev/sda.
Μένουν 2 warnings,
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1274320
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1068137
Για το πρώτο υπάρχουν κάποιες οδηγίες στο bug report, ενώ το δεύτερο φεύγει μόνο του όταν συγχρονιστεί το RAID array, μετά από 4-5 ώρες.

Στατιστικά:
Κώδικας: Bash
root@server:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sda2[0] sdb2[1] sdc2[3]
      614136832 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md3 : active raid5 sda4[0] sdb4[1] sdc4[3]
      703978496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md2 : active raid5 sda3[0] sdb3[1] sdc3[3]
      614136832 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md0 : active raid0 sdb1[0] sdc1[1]
      20478976 blocks super 1.2 512k chunks
      
unused devices: <none>
root@server:~# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 546 MB in  3.00 seconds = 181.88 MB/sec
root@server:~# hdparm -t /dev/md0

/dev/md0:
 Timing buffered disk reads: 986 MB in  3.00 seconds = 328.20 MB/sec
root@server:~# hdparm -t /dev/md1

/dev/md1:
 Timing buffered disk reads: 952 MB in  3.00 seconds = 317.33 MB/sec

root@server:~# parted -l
Model: ATA WDC WD10EZEX-08M (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  10,5GB  10,5GB                     bios_grub
 2      10,5GB  325GB   315GB
 3      325GB   640GB   315GB
 4      640GB   1000GB  361GB


Model: ATA WDC WD10EZEX-08M (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  10,5GB  10,5GB
 2      10,5GB  325GB   315GB
 3      325GB   640GB   315GB
 4      640GB   1000GB  361GB


Model: ATA WDC WD10EZEX-08M (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  10,5GB  10,5GB
 2      10,5GB  325GB   315GB
 3      325GB   640GB   315GB
 4      640GB   1000GB  361GB


Model: Linux Software RAID Array (md)
Disk /dev/md0: 21,0GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0,00B  21,0GB  21,0GB  linux-swap(v1)


Model: Linux Software RAID Array (md)
Disk /dev/md1: 629GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0,00B  629GB  629GB  ext4


Model: Linux Software RAID Array (md)
Disk /dev/md2: 629GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0,00B  629GB  629GB  ext4


Model: Linux Software RAID Array (md)
Disk /dev/md3: 721GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0,00B  721GB  721GB  ext4


root@server:~# blkid
/dev/sda2: UUID="791b9f8c-12e0-9aba-9ca6-1901d4149afe" UUID_SUB="d9e8f8b6-1a2f-606b-5840-5bd35ff13b73" LABEL="ubuntu:1" TYPE="linux_raid_member" 
/dev/sda3: UUID="840ea00e-0586-5227-ee07-2fd607617c53" UUID_SUB="9755f4a7-0036-32b9-a40b-f5ce5af83cbf" LABEL="ubuntu:2" TYPE="linux_raid_member" 
/dev/sda4: UUID="77e5e82c-3049-f260-b2d4-eaa905d45741" UUID_SUB="7f82d9a3-b7ba-cb52-552e-9710a167c318" LABEL="ubuntu:3" TYPE="linux_raid_member" 
/dev/sdb1: UUID="b4f89e27-90b6-909d-2655-55efd1778c29" UUID_SUB="93c53550-c0dd-161a-2183-052064e86e4a" LABEL="ubuntu:0" TYPE="linux_raid_member" 
/dev/sdb2: UUID="791b9f8c-12e0-9aba-9ca6-1901d4149afe" UUID_SUB="6c27ccec-33c6-aeac-7584-e91f538c4423" LABEL="ubuntu:1" TYPE="linux_raid_member" 
/dev/sdb3: UUID="840ea00e-0586-5227-ee07-2fd607617c53" UUID_SUB="97874e1c-2ba5-4f6c-ed6e-cf4f08b3046f" LABEL="ubuntu:2" TYPE="linux_raid_member" 
/dev/sdb4: UUID="77e5e82c-3049-f260-b2d4-eaa905d45741" UUID_SUB="7e65e2d6-809c-f63b-c66d-b36fbf8f3b43" LABEL="ubuntu:3" TYPE="linux_raid_member" 
/dev/sdc1: UUID="b4f89e27-90b6-909d-2655-55efd1778c29" UUID_SUB="28a3a8db-e1a7-c1dd-0f44-804a8fb84593" LABEL="ubuntu:0" TYPE="linux_raid_member" 
/dev/sdc2: UUID="791b9f8c-12e0-9aba-9ca6-1901d4149afe" UUID_SUB="2e8d19e1-da77-0fab-a010-5e6835ce0475" LABEL="ubuntu:1" TYPE="linux_raid_member" 
/dev/sdc3: UUID="840ea00e-0586-5227-ee07-2fd607617c53" UUID_SUB="19fa8ba6-9c0b-22db-7588-538ede8191f3" LABEL="ubuntu:2" TYPE="linux_raid_member" 
/dev/sdc4: UUID="77e5e82c-3049-f260-b2d4-eaa905d45741" UUID_SUB="e319b4dc-b4b6-c6b4-860c-bac1bf62200e" LABEL="ubuntu:3" TYPE="linux_raid_member" 
/dev/md0: UUID="7598ba84-ae49-4190-8827-a5e23fec1126" TYPE="swap" 
/dev/md2: UUID="6127002f-978f-4556-a29d-e07de3ad8586" TYPE="ext4" 
/dev/md3: UUID="c7c08d98-124e-4048-9bfe-a28814a41379" TYPE="ext4" 
/dev/md1: UUID="059a8cfa-1b4c-48a5-8b28-5366bc43ce51" TYPE="ext4"

sstergou

Άλκη ενδιαφέρουσα η εγκατάσταση. Έχω στήσει και γω webserver αλλά με raid 1 και δύο δίσκους.

Έτσι απο περιέργεια πως και κατέληξες στο raid 5 και γιατί προτίμησες ubuntu έναντι π.χ. debian stable; Υπάρχουν πλεονεκτήματα / μειονεκτήματα;

alkisg

Έστω ότι έχω 3 δίσκους του 1 Tb με ταχύτητα 150 MB/sec.
3 δίσκοι σε RAID 0 μου δίνουν χωρητικότητα 3 Tb (100%) και ταχύτητα 450 MB/sec (100%) αλλά όχι ασφάλεια από βλάβη ενός δίσκου.
2 δίσκοι σε RAID 1 μου δίνουν χωρητικότητα 1 Tb (50%) και ταχύτητα 150 MB/sec (50%) και ασφάλεια από βλάβη ενός δίσκου.
3 δίσκοι σε RAID 5 μου δίνουν χωρητικότητα 2 Tb (67%) και ταχύτητα 300 MB/sec (67%) και ασφάλεια από βλάβη ενός δίσκου.
Οπότε και αφού ήθελα ασφάλεια από βλάβη ενός δίσκου, το διάλεξα για καλύτερη χωρητικότητα και ταχύτητα.

Ubuntu vs Debian stable ==> Απλά για επαναχρησιμοποίηση της εμπειρίας που έχω στο Ubuntu και στα εργαλεία του (PPAs, LTS εκδόσεις κλπ) λόγω των σχολείων, αλλιώς για server δεν θα είχα και κανέναν ιδιαίτερο λόγο να το επιλέξω σε σχέση με το Debian...

vovos

Το RAID 5 δεν είναι και ότι καλύτερο. Υπάρχει σοβαρή πιθανότητα μετά από βλάβη σε έναν σκληρό και εγκατάσταση καινούριου να μην είναι δυνατή η αποκατάσταση του RAID. Μιλάω γιατί την έχω πατήσει...
Αν και παλιό άρθρο, εξηγεί πολύ καλά το γιατί:
http://www.zdnet.com/article/why-raid-5-stops-working-in-2009/

Καλύτερη λύση κατά την γνώμη μου είναι το software RAID όταν το btrfs γίνει αρκετά stable.

alkisg

Το άρθρο αυτό δεν αφορά συγκεκριμένα το RAID 5, λέει γενικά ότι αν κάποιος έχει μόνο έναν πλεονάζοντα δίσκο, τότε, όταν κάποιος δίσκος της συστοιχίας χαλάσει, και προστεθεί νέος δίσκος, και ξεκινήσει η ανακατασκευή των δεδομένων,
τότε, με βάση τα φυσιολογικά στατιστικά λαθών ανάγνωσης των δίσκων ενώ αυτοί δουλεύουν ακόμα κανονικά και δεν έχουν χαλάσει,
υπάρχει μια πιθανότητα ένα bit ανά 12 TB να διαβαστεί λάθος από τους υπάρχοντες δίσκους, και έτσι τα τελικά δεδομένα να είναι ελαφρώς χαλασμένα.

Δεν διαφωνώ με αυτά που λέει αλλά δεν έχουν καμία σχέση με RAID. Την ίδια πιθανότητα λάθους έχουμε και χωρίς RAID, αν διαβάσεις 12 TB από τον δίσκο σου, πιθανώς το ένα bit να το διαβάσεις λάθος. Αυτό θέλει CRC σε επίπεδο συστήματος αρχείων για να εντοπιστεί.

Για το btrfs συμφωνώ απόλυτα, τα έχω πει και εδώ, αλλά δεν είναι ακόμα έτοιμο.

gidarakos

Παράθεση από: alkisg στις 29 Ιαν 2015, 07:30:51 ΜΜ
Οπότε έτσι χρειάστηκαν διάφορα κόλπα γιατί το desktop CD δεν υποστηρίζει RAID...
Παράθεση από: sstergou στις 29 Ιαν 2015, 08:13:01 ΜΜ
Έχω στήσει και γω webserver αλλά με raid 1 και δύο δίσκους.

Επειδή είναι η δεύτερη φορά που συναντώ raid 1 και αυτή τη φορά software raid με προεγκατεστημένα τα windows 10 - τα οποία θα ήθελα να αποφύγω να διαγράψω - δεν ξέρω αν θα ήταν καλύτερα να αποτυπωθεί εδώ η εμπειρία της διαδικασίας εγκατάστασης ή θα ήταν καλύτερα μέσω IRC..

gidarakos

#6
Έχουμε Windows 10 σε raid 1 και στη εγκατάσταση LTSP server 12.04 - όπως ήταν αναμενόμενο - δεν αναγνωρίζει τα windows.
Κώδικας: bash
ubuntu@ubuntu:~$ sudo lsblk
NAME                               MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
loop0                                7:0    0   2,9G  1 loop   /rofs
sda                                  8:0    0 465,8G  0 disk   
└─isw_ijhcjciah_Volume1 (dm-0)     252:0    0 465,8G  0 dmraid 
  ├─isw_ijhcjciah_Volume1p1 (dm-1) 252:1    0   500M  0 part   
  └─isw_ijhcjciah_Volume1p2 (dm-2) 252:2    0 465,3G  0 part   
sdb                                  8:16   0 465,8G  0 disk   
└─isw_ijhcjciah_Volume1 (dm-0)     252:0    0 465,8G  0 dmraid 
  ├─isw_ijhcjciah_Volume1p1 (dm-1) 252:1    0   500M  0 part   
  └─isw_ijhcjciah_Volume1p2 (dm-2) 252:2    0 465,3G  0 part   
sr0                                 11:0    1   2,9G  0 rom    /cdrom
ubuntu@ubuntu:~$ sudo blkid
/dev/mapper/isw_ijhcjciah_Volume1p1: LABEL="M-NM-^TM-NM-5M-OM-^CM-NM-<M-NM-5M-OM-^EM-NM-<M-NM--M-NM-=M-NM-? M-NM-1M-OM-^@M-OM-^L M-OM-^DM-NM-? M-OM-^CM-OM-^MM-OM-^CM-OM-^DM-NM-7M-NM-<M-NM-1" UUID="6EF8D1E9F8D1AF97" TYPE="ntfs" 
/dev/mapper/isw_ijhcjciah_Volume1p2: UUID="F440EC4E40EC18DE" TYPE="ntfs" 
/dev/loop0: TYPE="squashfs" 
/dev/sda: TYPE="isw_raid_member" 
/dev/sr0: LABEL="Ubuntu 12.04.3 LTS i386" TYPE="iso9660" 
/dev/sdb: TYPE="isw_raid_member" 
ubuntu@ubuntu:~$

Υπάρχει καμιά ιδέα χωρίς να χρειαστεί να εγκαταστήσουμε ξανά τα 10αρια;

@alkisg:
Η ουσία δεν αλλάζει, απλά Άλκη σε αυτά τα σημεία του post νομίζω έχεις ξεχάσει τον 3 δίσκο..
Παράθεση από: alkisg στις 29 Ιαν 2015, 07:30:51 ΜΜ
Διαμόρφωση Ubuntu1 partition, 300+300 GB, σε RAID5..

Το ίδιο και για το Ubuntu2 partition, 300+300 GB, σε RAID5..

Το 3ο partition μεγέθους 350+350 GB έγινε και πάλι σε RAID5..

alkisg

Εκεί που γράφω π.χ. 300+300 GB, εννοώ ότι έχουμε 3 παράλληλα partitions των 300 GB, τα οποία λόγω του RAID 5 μας δίνουν τελικό εκμεταλλεύσιμο μέγεθος στα 2/3 της συνολικής χωρητικότητας.
Δηλαδή αντί για 300+300+300 GB = 900 GB μέγεθος του ενωμένου RAID partition, μας δίνουν 300+300 GB = 600 GB.
Τα άλλα 300 χρησιμοποιούνται για parity.

Για τη συνεργασία του Ubuntu με το RAID των Windows δεν έχω ασχοληθεί, αν θες περίμενε να δεις μήπως απαντήσει κάποιος άλλος, αλλιώς μπορείς να ρωτήσεις και στο ubuntu-gr ή σε άλλα φόρουμ του Linux.

gidarakos

Ήταν κατανοήτο αυτό με το μέγεθος αλλά παρασύρθηκα από την εντολή mdadm --create --verbose --level=5 --raid-devices=3 /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2 και νόμιζα ότι αναφερόσουν στο partition του κάθε δίσκου.. ok!

Με το raid περιμένουμε και ρωτάμε.. πέσαμε και σε περίοδο αναβάθμισης του ubuntu-gr..  :)

alkisg

Σημειώσεις επιδιόρθωσης RAID μετά από hardware πρόβλημα ενός από τους δίσκους:

Κώδικας: Bash
apt update
apt install mdadm
mdadm --assemble --scan
mdadm -D /dev/md1
mdadm --manage /dev/md1 -a /dev/sda2
mdadm -D /dev/md1
watch cat /proc/mdstat