Κάποιος στην ομάδα λέει ότι η κοινή χρήση αρχείων μέσω VPN είναι αργή, και η πρώτη πρόταση είναι πάντα μια κρυφή μνήμη. Πριν προσθέσετε το BranchCache στη σχεδίαση απομακρυσμένης πρόσβασης, χωρίστε το παράπονο σε μία από τρεις μορφές: επαναλαμβανόμενες λήψεις αμετάβλητου περιεχομένου, μεταφορτώσεις ή περιήγηση με πολλά μεταδεδομένα σε φακέλους με χιλιάδες καταχωρήσεις. Το BranchCache αντιμετωπίζει την πρώτη μορφή σε υποστηριζόμενο περιεχόμενο και δεν κάνει τίποτα χρήσιμο για τις άλλες δύο. Αυτό δεν είναι περιορισμός προς παράκαμψη· είναι η σύγκριση που πρέπει να κάνετε πριν ξοδέψετε μια εβδομάδα στην ανάπτυξη.

Η ίδια κοινή χρήση, τρία διαφορετικά παράπονα

Ένα υποκατάστημα όπου οκτώ άτομα ανοίγουν το ίδιο αμετάβλητο εκπαιδευτικό βίντεο είναι η περίπτωση για την οποία σχεδιάστηκε η λειτουργία. Η πρώτη ανάκτηση διασχίζει το WAN, το περιεχόμενο αποθηκεύεται προσωρινά κοντά στους αναγνώστες και οι επόμενες ανακτήσεις του ίδιου αμετάβλητου αρχείου εξυπηρετούνται τοπικά. Το όφελος είναι πραγματικό και στενό: ίδιο περιεχόμενο, αμετάβλητο, πολλοί αναγνώστες.

Ένας φορητός υπολογιστής που ανεβάζει μια νέα εγγραφή μέσω οικιακής σύνδεσης είναι η αντίθετη περίπτωση. Δεν υπάρχει προηγούμενα αποθηκευμένο αντίγραφο ενός αρχείου που δεν υπάρχει ακόμη, οπότε η μεταφόρτωση ακολουθεί την ίδια περιορισμένη διαδρομή όπως πάντα. Μια κρυφή μνήμη λήψεων δεν αφαιρεί μια μεταφόρτωση, και καμία επιλογή θέσης δεν το αλλάζει.

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

Κατανεμημένη κρυφή μνήμη: μια συστοιχία VPN δεν είναι LAN υποκαταστήματος

Σε κατανεμημένη λειτουργία, οι υπολογιστές πελάτες μοιράζονται το αποθηκευμένο περιεχόμενο μεταξύ τους, και η Microsoft τεκμηριώνει αυτή τη λειτουργία ως λειτουργούσα εντός ενός μόνο υποδικτύου. Μια συστοιχία πελατών VPN δεν είναι υποδίκτυο με αυτή την έννοια, ακόμη και όταν όλες οι διευθύνσεις φαίνονται συνεχόμενες: η ανάκλυψη ομοτίμων, η προσβασιμότητα πελάτη προς πελάτη και η άδεια ανταλλαγής δεδομένων κρυφής μνήμης είναι ξεχωριστά ερωτήματα, και η συνήθης σχεδίαση απομακρυσμένης πρόσβασης απαντά «όχι» και στα τρία.

Μπορείτε να κάνετε την συστοιχία να συμπεριφέρεται σαν LAN υποκαταστήματος επιτρέποντας κίνηση μεταξύ πελατών, αλλά αυτό είναι απόφαση ασφάλειας, όχι απόφαση κρυφής μνήμης. Οι περισσότερες σχεδιάσεις απομακρυσμένης πρόσβασης απομονώνουν τους πελάτες μεταξύ τους ακριβώς για να μην μπορεί ένας παραβιασμένος φορητός να φτάσει έναν άλλο, και η ανταλλαγή αυτής της απομόνωσης με μια επιτυχία κρυφής μνήμης είναι κακή συναλλαγή, εκτός αν οι ομότιμοι είναι ήδη έμπιστοι ίσοι.

Για έναν μόνο κινούμενο χρήστη, η κατανεμημένη λειτουργία δεν έχει κανέναν να μοιραστεί. Η κρυφή μνήμη μπορεί ακόμη να εξυπηρετεί τις επαναλαμβανόμενες αναγνώσεις αυτού του πελάτη, αλλά αυτό είναι όφελος κρυφής μνήμης στην πλευρά του πελάτη, όχι όφελος θέσης στο υποκατάστημα, και αξίζει να λεχθεί πριν κάποιος περιμένει το γραφείο να γίνει ταχύτερο.

Φιλοξενούμενη κρυφή μνήμη: η θέση αποφασίζει αν βοηθά

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

Τοποθετήστε την κοντά στους αναγνώστες, δώστε της ιδιοκτήτη και διαστασιολογήστε τον δίσκο της για το σύνολο εργασίας και όχι για ολόκληρη την κοινή χρήση. Η επισκόπηση του BranchCache της Microsoft περιγράφει και τις δύο λειτουργίες και τη συμπεριφορά του πελάτη, συμπεριλαμβανομένου του μέρους που ξεχνούν οι άνθρωποι: οι πελάτες εξακολουθούν να επικοινωνούν με την προέλευση για εξουσιοδότηση και πληροφορίες περιεχομένου πριν χρησιμοποιήσουν αποθηκευμένα δεδομένα.

Η ανάπτυξη είναι τρεις ρόλοι σχεδιασμένοι μαζί, όχι ένα κουτάκι ελέγχου. Ο διακομιστής προέλευσης δημοσιεύει κατακερματισμούς για το περιεχόμενο, η φιλοξενούμενη κρυφή μνήμη ενεργοποιείται και είναι ανιχνεύσιμη, και οι πελάτες ρυθμίζονται να τη χρησιμοποιούν. Στην πλευρά του διακομιστή αυτό αναγνωρίζεται στο PowerShell:

Enable-BCHostedServer -RegisterSCP
Get-BCStatus | Select-Object BranchCacheIsEnabled, ClientMode, HostedCacheServerList

Στον πελάτη, είτε στοχεύστε σε ονομασμένους διακομιστές είτε αφήστε τον να τους ανακαλύψει μέσω του σημείου σύνδεσης υπηρεσίας· στη συνέχεια επιβεβαιώστε τη λειτουργία που επέλεξε πραγματικά αντί να υποθέσετε ότι εφαρμόστηκε η πολιτική:

Enable-BCHostedClient -ServerNames cache1.corp.example -UseSCP
Get-BCStatus | Select-Object BranchCacheIsEnabled, ClientMode

Τι φτάνει ακόμη στην προέλευση

Η προσωρινή αποθήκευση δεν αφαιρεί την εξουσιοδότηση. Ένας πελάτης χωρίς άδεια ανάγνωσης ενός αρχείου δεν αποκτά πρόσβαση επειδή κάποιος άλλος το αποθήκευσε, και η προέλευση εξακολουθεί να απαντά στο ερώτημα εξουσιοδότησης και να παρέχει τις πληροφορίες περιεχομένου που καθιστούν δυνατή την αναζήτηση στην κρυφή μνήμη. Αν η προέλευση δεν είναι προσβάσιμη, το αποθηκευμένο αντίγραφο μόνο του δεν γίνεται κοινή χρήση εκτός σύνδεσης.

Οι αλλαγές περιεχομένου σπάνε επίσης την υπόθεση σιωπηλά. Ένα αρχείο που αποθηκεύεται ξανά, κωδικοποιείται ξανά ή αγγίζεται από προϊόν δημιουργίας αντιγράφων μπορεί να μην ταιριάζει πλέον με τον αποθηκευμένο κατακερματισμό, και η επόμενη ανάγνωση επιστρέφει στην προέλευση. Αυτή είναι η σωστή συμπεριφορά, και γι' αυτό μια κρυφή μνήμη της οποίας το σύνολο εργασίας αλλάζει κάθε ώρα προσφέρει λίγα.

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

Δεχτείτε το με δύο ανακτήσεις και μία μεταφόρτωση

Δοκιμάστε τις σωστές τρεις ροές και σημειώστε τι δείχνει καθεμία. Πρώτη ανάκτηση ενός αντιπροσωπευτικού αρχείου από έναν πελάτη, μετρημένη στη ζεύξη προέλευσης καθώς και στο ρολόι του χρήστη. Δεύτερη ανάκτηση του ίδιου αμετάβλητου αρχείου από δεύτερο πελάτη στην ίδια ομάδα θέσης. Μία μεταφόρτωση νέου αρχείου, που δεν θα πρέπει να δείχνει βελτίωση και επιβεβαιώνει ότι η κρυφή μνήμη δεν πιστώνεται για κάτι που δεν έκανε ποτέ.

Αν η δεύτερη ανάκτηση εξακολουθεί να διασχίζει τη ζεύξη προέλευσης για το μεγαλύτερο μέρος των byte, η κρυφή μνήμη δεν χρησιμοποιείται, και η αιτία είναι συνήθως ένας πελάτης σε λάθος λειτουργία, μια δημοσίευση κατακερματισμού που λείπει στην προέλευση ή μια φιλοξενούμενη κρυφή μνήμη στη λάθος πλευρά της περιορισμένης ζεύξης. Αυτές είναι τρεις διαφορετικές διορθώσεις, και μόνο μία αφορά τη θέση στο δίκτυο.

Στη συνέχεια διατυπώστε το συμπέρασμα στην ίδια μορφή με το αρχικό παράπονο: οι επαναλαμβανόμενες λήψεις αμετάβλητου περιεχομένου από αυτήν την προέλευση προς αυτούς τους αναγνώστες εξυπηρετούνται από αυτή την κρυφή μνήμη. Όλα τα άλλα σχετικά με την κοινή χρήση παραμένουν άθικτα, συμπεριλαμβανομένων των μεταφορτώσεων, της απαρίθμησης φακέλων και της ιστορίας εκτός σύνδεσης, που εξακολουθεί να χρειάζεται τη δική της απάντηση.

Σχετικά άρθρα