Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Database Server: RAID Stripping ή Filegroup Stripping?

Îåêßíçóå áðü ôï ìÝëïò sql100. Τελευταία δημοσίευση από το μέλος KelMan στις 15-11-2006, 19:15. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-11-2006, 14:12 20394

    Database Server: RAID Stripping ή Filegroup Stripping?

    Ο Database Server (SQL Server 2005,Windows Server 2003) φιλοξενεί database 20GB μιας live εφαρμογής και κάποιες άλλες βάσεις για την εφαρμογή μου. Η βάση έχει κάποιους μεγάλους σε μέγεθους πίνακες και πολύ I/O. Έχω τις εξής επιλογές:

    Επιλογή 1:Να αγοράσω ένα RAID-10 με 4 δίσκους (έστω A: B: οι δίσκοι για το stipping και οι άλλοι δύο θα είναι για mirroring) ενώ θα βλέπω έναν λογικό δίσκο. Τόσο οι βάσεις όσο και όλα τα αρχεία του συστήματος(και του λειτουργικού υποθέτω) γίνονται strip από το RAID μηχανισμό στους δίσκους Α: Β:

    Επιλογή 2:Να αγοράσω δύο RAID-0 με 2 δίσκους το καθένα. Θα βλέπω δύο λογικούς δίσκους (C: και D:). Φτιάχνω filegroup με δύο αρχεία C:\myDB1.ndf και D:\myDB2.ndf και τοποθετώ τους μεγάλους πίνακες κλπ σε αυτό το filegroup. Ο SQL θα κάνει strip τα data των πινάκων του filegroup στα δύο αρχεία που βρίσκονται σε διαφορετικούς δίσκους.

    Έστω ότι με ενδιαφέρει το performance χωρίς να με απασχολούν άλλα θέματα οπως π.χ. να παίρνω backup το filegroup ξεχωριστά.

    Ποιά από τις δύο λύσεις είναι καλύτερη από πλευράς performance για τον SQL Server και ποιά συνολικά για την απόδοση του συστήματος?

    Αν επιλέξω την πρώτη λύση, θα είχα κάποιο όφελος αν έκανα filegroup (δεδομένου το ότι το stripping γίνεται από το RAID)?΄Μήπως αυτό θα προκαλούσε μεγάλο fragmentation?

     

  •  15-11-2006, 14:57 20396 σε απάντηση της 20394

    Απ: Database Server: RAID Stripping ή Filegroup Stripping?

    Το καλύτερο από πλευράς performance είναι το data file σε 2 δίσκους σε RAID 0 και το log file σε 2 δίσκους σε RAID 1. Φυσικά, το system disk σε διαφορετικό δίσκο και ακόμα καλύτερα και η tempdb να είναι σε διαφορετικό δίσκο ή at least στο RAID 0. Τα filegroups είναι το RAID του φτωχού και εφόσον δεν σε ενδιαφέρουν τα filegroup backups τότε μην ασχοληθείς. Εξάλλου το RAID 0 σε γλυτώνει από το hotspot φαινόμενο σε αντίθεση με τα filegroups. To log file γίνεται access σειριακά και ως εκ τούτου δεν ευεργετείται από το RAID 0. Αντιθέτως, θέλεις μεγάλη ασφάλεια οπότε το βάζεις σε mirror. Αν ακολουθήσεις την Επιλογή #1, τότε έχεις performance penalty γιατί κάθε logical write IO, έχεις 4 physical (2 λόγω του strip και 2 λόγω του mirror).


    Vir prudens non contra ventum mingit
  •  15-11-2006, 15:09 20397 σε απάντηση της 20394

    Απ: Database Server: RAID Stripping ή Filegroup Stripping?

    Να κάνω μια παρέμβαση που μπορεί να θεωρηθεί και off-topic: Ειναι striping και όχι stripping. Απο τα stripes. Το stripping σημαίνει κάτι κακό (η κάτι καλό, αναλόγως την περίσταση) :)


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  15-11-2006, 16:40 20401 σε απάντηση της 20396

    Απ: Database Server: RAID Stripping ή Filegroup Stripping?

    Έκανα ένα μικρό λάθος στο αρχικό post και οφείλω να ζητήσω συγγνώμη. Στην δεύτερη επιλογή εννοούσα 2  δύο RAID-1 με 2 δίσκους το καθένα και όχι RAID-0 ώστε να έχω ασφάλεια. KelMan σ ευχαριστώ για την απάντηση αλλά το data file μπορεί να μπει σε 2 δίσκους σε RAID 0 ? ουσιαστικά θα βλέπω ένα λογικό δίσκο (striping) και δεν θα έχω stripping χωρίς ασφάλεια.....εκτός κι αν κατάλαβα λάθος. Προτείνεις την Επιλογή 2  χωρίς filegroup? στην περίπτωση αυτή (επειδή το budget προβλέπει μόνο 4 φυσικούς δίσκους Sad ) το datafile θα είναι σε ένα μόνο δίσκο.

    Confused

  •  15-11-2006, 19:15 20407 σε απάντηση της 20401

    Απ: Database Server: RAID Stripping ή Filegroup Stripping?

    Πρότεινα RAID 0 για το(τα) data file(s) και RAID 1 για το log file. Είναι καλή λύση για τις προδιαγραφές σου (τέσσερις δίσκοι, στόχος το performance). Ένα καλό trade-off για μεγαλύτερο fault tolerance και λιγότερο performance είναι η 1η λύση.

    Συνοψίζοντας για τα RAID levels στον SQL Server:

    • RAID 0 (striping): Μέγιστο read/write performance, αλλά χωρίς fault tolerance. Αν χαθεί ένας δίσκος, χάνεται όλο το set. Ως άμυνα έχεις τα backups (και την ασφάλεια του log file αν έχει μπει σε RAID 1). Κατάλληλο για τα data files.
    • RAID 1 (mirroring): Καλό read performance μιας και τα data μπορεί να είναι διαθέσιμα από οποιονδήποτε δίσκο. Υποδεέστερο write performance καθώς κάθε write πρέπει να επαναλαμβάνεται για κάθε δίσκο του mirror set. Πολύ καλό ως προς το fault tolerance. Κατάλληλο για το log file.
    • RAID 5 (striping with parity): Καλύτερο read performance από το mirroring αλλά χειρότερο write performance καθώς τα writes συνοδεύονται από reads και γίνονται διαδοχικά ώστε στο τέλος να γραφτεί το parity. Καλό fault tolerance αλλά αν χαθεί ένας δίσκος πέφτει πολύ το performance μέχρι να αντικατασταθεί.
    • RAID 10 (striped mirroring):  Έχει το read performance του RAID 0 και το write performance του READ 1. Παρέχει πολύ καλό fault tolerance (μπορεί να αντέξει έναν χαμένο δίσκο ανά striped set).



    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems