aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/el/books/handbook/filesystems/_index.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/el/books/handbook/filesystems/_index.adoc')
-rw-r--r--documentation/content/el/books/handbook/filesystems/_index.adoc94
1 files changed, 47 insertions, 47 deletions
diff --git a/documentation/content/el/books/handbook/filesystems/_index.adoc b/documentation/content/el/books/handbook/filesystems/_index.adoc
index 0c2173489b..289d8c4e78 100644
--- a/documentation/content/el/books/handbook/filesystems/_index.adoc
+++ b/documentation/content/el/books/handbook/filesystems/_index.adoc
@@ -113,7 +113,7 @@ vfs.zfs.vdev.cache.size="5M"
Υπάρχει ένας μηχανισμός εκκίνησης που επιτρέπει στο FreeBSD να προσαρτήσει ZFS pools κατά τη διάρκεια της εκκίνησης του συστήματος. Για να τον ρυθμίσετε, εκτελέστε τις ακόλουθες εντολές:
-[source,bash]
+[source,shell]
....
# echo 'zfs_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/zfs start
@@ -125,14 +125,14 @@ vfs.zfs.vdev.cache.size="5M"
Για την δημιουργία ενός ZFS pool με ένα μόνο δίσκο (χωρίς δυνατότητα ανοχής σφαλμάτων), χρησιμοποιήστε την εντολή `zpool`:
-[source,bash]
+[source,shell]
....
# zpool create example /dev/da0
....
Για να δείτε το νέο pool, εξετάστε την έξοδο της εντολής `df`:
-[source,bash]
+[source,shell]
....
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
@@ -144,7 +144,7 @@ example 17547136 0 17547136 0% /example
Η έξοδος αυτή δείχνει καθαρά ότι το `example` pool όχι μόνο έχει δημιουργηθεί, αλλά έχει επίσης _προσαρτηθεί_ κιόλας. Είναι επίσης διαθέσιμο ως κανονικό σύστημα αρχείων, μπορείτε να δημιουργήσετε αρχεία σε αυτό, και άλλοι χρήστες μπορούν επίσης να το δουν, όπως φαίνεται στο παρακάτω παράδειγμα:
-[source,bash]
+[source,shell]
....
# cd /example
# ls
@@ -158,7 +158,7 @@ drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
Δυστυχώς αυτό το pool δεν χρησιμοποιεί κάποιο από τα πλεονεκτήματα του ZFS. Δημιουργήστε ένα σύστημα αρχείων σε αυτό το pool και ενεργοποιήστε σε αυτό τη συμπίεση:
-[source,bash]
+[source,shell]
....
# zfs create example/compressed
# zfs set compression=gzip example/compressed
@@ -168,14 +168,14 @@ drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
Μπορείτε τώρα να απενεργοποιήσετε τη συμπίεση γράφοντας:
-[source,bash]
+[source,shell]
....
# zfs set compression=off example/compressed
....
Για να αποπροσαρτήσετε το σύστημα αρχείων, εκτελέστε την ακόλουθη εντολή και επαληθεύστε το αποτέλεσμα μέσω του βοηθητικού προγράμματος `df`:
-[source,bash]
+[source,shell]
....
# zfs umount example/compressed
# df
@@ -188,7 +188,7 @@ example 17547008 0 17547008 0% /example
Προσαρτήστε ξανά το σύστημα αρχείων, ώστε να είναι και πάλι προσβάσιμο, και επαληθεύστε το χρησιμοποιώντας όπως και πριν, την εντολή `df`:
-[source,bash]
+[source,shell]
....
# zfs mount example/compressed
# df
@@ -202,7 +202,7 @@ example/compressed 17547008 0 17547008 0% /example/compressed
Μπορείτε επίσης να δείτε το pool και το σύστημα αρχείων εξετάζοντας την έξοδο της εντολής `mount`:
-[source,bash]
+[source,shell]
....
# mount
/dev/ad0s1a on / (ufs, local)
@@ -215,7 +215,7 @@ example/compressed on /example/compressed (zfs, local)
Όπως παρατηρούμε, το σύστημα αρχείων ZFS μπορεί να χρησιμοποιηθεί ως κοινό σύστημα αρχείων μετά τη δημιουργία του. Ωστόσο, διαθέτει πολλές ακόμα λειτουργίες. Στο παρακάτω παράδειγμα δημιουργούμε ένα νέο σύστημα αρχείων, το `data`. θα αποθηκεύσουμε σημαντικά δεδομένα σε αυτό, και έτσι το ρυθμίζουμε ώστε να κρατάει δύο αντίγραφα από κάθε μπλοκ δεδομένων:
-[source,bash]
+[source,shell]
....
# zfs create example/data
# zfs set copies=2 example/data
@@ -223,7 +223,7 @@ example/compressed on /example/compressed (zfs, local)
Μπορούμε τώρα να δούμε τα δεδομένα και την κατανάλωση χώρου δίνοντας ξανά την εντολή `df`:
-[source,bash]
+[source,shell]
....
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
@@ -237,7 +237,7 @@ example/data 17547008 0 17547008 0% /example/data
Παρατηρήστε ότι κάθε σύστημα αρχείων στο pool δείχνει το ίδιο μέγεθος διαθέσιμου χώρου. Αυτός είναι και ο λόγος που χρησιμοποιούμε την εντολή `df` σε όλα τα παραδείγματα, για να δείξουμε ότι τα συστήματα αρχείων χρησιμοποιούν μόνο το χώρο που χρειάζονται και ότι όλα μοιράζονται τον ίδιο χώρο (το κοινόχρηστο απόθεμα - pool). Στο σύστημα αρχείων ZFS έννοιες όπως οι τόμοι (volumes) και οι κατατμήσεις (partitions) δεν έχουν νόημα. Αντίθετα, πολλά συστήματα αρχείων μοιράζονται τον ίδιο χώρο, το pool. Μπορείτε να καταργήσετε το σύστημα αρχείων και κατόπιν το ίδιο το pool όταν δεν τα χρειάζεστε πλέον:
-[source,bash]
+[source,shell]
....
# zfs destroy example/compressed
# zfs destroy example/data
@@ -250,7 +250,7 @@ example/data 17547008 0 17547008 0% /example/data
Όπως αναφέραμε προηγουμένως, η ενότητα αυτή προϋποθέτει ότι χρησιμοποιούμε τρεις συσκευές SCSI με ονόματα συσκευών [.filename]#da0#, [.filename]#da1# και [.filename]#da2#. Για να δημιουργήσουμε ένα pool τύπου RAID-Z, εκτελούμε την ακόλουθη εντολή:
-[source,bash]
+[source,shell]
....
# zpool create storage raidz da0 da1 da2
....
@@ -262,14 +262,14 @@ example/data 17547008 0 17547008 0% /example/data
Θα δημιουργηθεί το `storage` zpool. Μπορείτε να επαληθεύσετε το αποτέλεσμα χρησιμοποιώντας, όπως και προηγουμένως, τις εντολές man:mount[8] και man:df[1]. Θα μπορούσαμε να χρησιμοποιήσουμε περισσότερους δίσκους, προσθέτοντας τα ονόματα συσκευών τους στο τέλος της παραπάνω λίστας. Δημιουργήστε ένα νέο σύστημα αρχείων στο pool, το οποίο θα ονομάζεται `home` και όπου θα αποθηκεύονται τελικά τα αρχεία των χρηστών:
-[source,bash]
+[source,shell]
....
# zfs create storage/home
....
Μπορούμε τώρα να ενεργοποιήσουμε την συμπίεση και να κρατάμε επιπλέον αντίγραφα των καταλόγων και των δεδομένων των χρηστών. Όπως και προηγουμένως, μπορούμε να το επιτύχουμε χρησιμοποιώντας τις παρακάτω εντολές:
-[source,bash]
+[source,shell]
....
# zfs set copies=2 storage/home
# zfs set compression=gzip storage/home
@@ -277,7 +277,7 @@ example/data 17547008 0 17547008 0% /example/data
Για να γίνει αυτός ο νέος κατάλογος των χρηστών, αντιγράψτε τα δεδομένα τους σε αυτόν και δημιουργήστε τους κατάλληλους συμβολικούς δεσμούς:
-[source,bash]
+[source,shell]
....
# cp -rp /home/* /storage/home
# rm -rf /home /usr/home
@@ -289,42 +289,42 @@ example/data 17547008 0 17547008 0% /example/data
Δοκιμάστε να δημιουργήσετε ένα στιγμιότυπο (snapshot) στο οποίο θα μπορείτε να επανέλθετε αργότερα:
-[source,bash]
+[source,shell]
....
# zfs snapshot storage/home@08-30-08
....
Σημειώστε ότι η επιλογή δημιουργίας στιγμιότυπου λειτουργεί μόνο σε πραγματικό σύστημα αρχείων, και όχι σε κάποιο μεμονωμένο κατάλογο ή αρχείο. Ο χαρακτήρας `@` χρησιμοποιείται ως διαχωριστικό μεταξύ του συστήματος αρχείων και του ονόματος τόμου. Αν καταστραφεί ο κατάλογος δεδομένων κάποιου χρήστη αποκαταστήστε τον με την εντολή:
-[source,bash]
+[source,shell]
....
# zfs rollback storage/home@08-30-08
....
Για να δείτε μια λίστα των διαθέσιμων στιγμιότυπων, εκτελέστε την εντολή `ls` στον κατάλογο [.filename]#.zfs/snapshot# του συστήματος αρχείων. Για παράδειγμα, για να δείτε το στιγμιότυπο που δημιουργήσαμε προηγουμένως, εκτελέστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# ls /storage/home/.zfs/snapshot
....
Είναι δυνατόν να γράψετε κάποιο script που να δημιουργεί μηνιαία στιγμιότυπα των δεδομένων των χρηστών. Ωστόσο, με την πάροδο του χρόνου, τα στιγμιότυπα θα καταναλώσουν μεγάλο ποσοστό του χώρου στο δίσκο. Μπορείτε να διαγράψετε το προηγούμενο στιγμιότυπο χρησιμοποιώντας την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs destroy storage/home@08-30-08
....
Δεν υπάρχει λόγος, μετά από όλες αυτές τις δοκιμές, να κρατήσουμε το [.filename]#/storage/home# στην παρούσα κατάσταση του. Μετατρέψτε το στο πραγματικό σύστημα αρχείων [.filename]#/home#:
-[source,bash]
+[source,shell]
....
# zfs set mountpoint=/home storage/home
....
Χρησιμοποιώντας τις εντολές `df` και `mount` θα δούμε ότι το σύστημα χειρίζεται πλέον αυτό το σύστημα αρχείων ως το πραγματικό [.filename]#/home#:
-[source,bash]
+[source,shell]
....
# mount
/dev/ad0s1a on / (ufs, local)
@@ -343,7 +343,7 @@ storage/home 26320512 0 26320512 0% /home
Εδώ ολοκληρώνεται η ρύθμιση του RAID-Z. Για να δέχεστε αναφορές κατάστασης σχετικά με τα συστήματα αρχείων κατά τη νυκτερινή εκτέλεση του man:periodic[8], δώστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf
....
@@ -352,21 +352,21 @@ storage/home 26320512 0 26320512 0% /home
Κάθε λογισμικό RAID έχει μια μέθοδο για επίβλεψη της κατάστασής του, και το ZFS δεν αποτελεί εξαίρεση. Μπορείτε να δείτε την κατάσταση των συσκευών του RAID-Z χρησιμοποιώντας την ακόλουθη εντολή:
-[source,bash]
+[source,shell]
....
# zpool status -x
....
Αν όλα τα pools είναι σε υγιή κατάσταση, θα πάρετε το ακόλουθο μήνυμα:
-[source,bash]
+[source,shell]
....
all pools are healthy
....
Αν υπάρχει κάποιο πρόβλημα, π.χ. κάποιος δίσκος έχει βγει εκτός λειτουργίας, θα δείτε την περιγραφή της κατάστασης σε ένα μήνυμα όπως το παρακάτω:
-[source,bash]
+[source,shell]
....
pool: storage
state: DEGRADED
@@ -390,21 +390,21 @@ errors: No known data errors
Το παραπάνω δείχνει ότι η συσκευή τέθηκε εκτός λειτουργίας από τον διαχειριστή. Αυτό είναι αλήθεια για το συγκεκριμένο παράδειγμα. Για να τεθεί ο δίσκος εκτός, χρησιμοποιήθηκε η παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zpool offline storage da1
....
Μπορούμε τώρα να αντικαταστήσουμε το δίσκο [.filename]#da1# μετά την απενεργοποίηση του συστήματος. Όταν το σύστημα επανέλθει σε λειτουργία, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να ενημερώσουμε το σύστημα για την αντικατάσταση του δίσκου:
-[source,bash]
+[source,shell]
....
# zpool replace storage da1
....
Από εδώ, μπορούμε να ελέγξουμε ξανά την κατάσταση, αυτή τη φορά χωρίς την επιλογή `-x`:
-[source,bash]
+[source,shell]
....
# zpool status storage
pool: storage
@@ -428,21 +428,21 @@ errors: No known data errors
Όπως αναφέραμε προηγουμένως, το ZFS χρησιμοποιεί `checksums` (αθροίσματα ελέγχου) για να επαληθεύσει την ακεραιότητα των αποθηκευμένων δεδομένων. Τα αθροίσματα ελέγχου ενεργοποιούνται αυτόματα κατά την δημιουργία των συστημάτων αρχείων, και μπορούν να απενεργοποιηθούν μέσω της επόμενης εντολής:
-[source,bash]
+[source,shell]
....
# zfs set checksum=off storage/home
....
Αυτό δεν είναι γενικά καλή ιδέα, καθώς τα checksums καταλαμβάνουν ελάχιστο αποθηκευτικό χώρο, και είναι πολύ πιο χρήσιμο να τα έχουμε ενεργοποιημένα. Επίσης δεν φαίνεται να προκαλούν κάποια σημαντική καθυστέρηση ή επιβάρυνση. Με τα checksums ενεργοποιημένα, μπορούμε να ζητήσουμε από το ZFS να ελέγξει την ακεραιότητα των δεδομένων χρησιμοποιώντας τα για επαλήθευση. Η διαδικασία αυτή είναι γνωστή ως "scrubbing." Για να ελέγξετε την ακεραιότητα δεδομένων του pool `storage`, χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zpool scrub storage
....
Η διαδικασία αυτή μπορεί να πάρει αρκετή ώρα, ανάλογα με την ποσότητα των αποθηκευμένων δεδομένων. Επίσης χρησιμοποιεί πάρα πολύ το δίσκο (I/O), τόσο ώστε σε κάθε δεδομένη στιγμή μπορεί να εκτελείται μόνο μια τέτοια διαδικασία. Μετά την ολοκλήρωση του scrub, θα ανανεωθεί και η αναφορά κατάστασης, την οποία μπορείτε να δείτε ζητώντας την με την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zpool status storage
pool: storage
@@ -479,7 +479,7 @@ errors: No known data errors
Για να επιβάλετε γενικό quota 10 GB για το [.filename]#storage/home/bob#, χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs set quota=10G storage/home/bob
....
@@ -493,14 +493,14 @@ errors: No known data errors
Για παράδειγμα, για να επιβάλετε quota 50 GB για ένα χρήστη με όνομα _joe_, χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs set userquota@joe=50G
....
Για να αφαιρέσετε το quota ή να βεβαιωθείτε ότι δεν έχει τεθεί, χρησιμοποιήστε την εντολή:
-[source,bash]
+[source,shell]
....
# zfs set userquota@joe=none
....
@@ -511,14 +511,14 @@ errors: No known data errors
Για να θέσετε quota για την ομάδα χρηστών _firstgroup_ τα 50 GB, χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs set groupquota@firstgroup=50G
....
Για να αφαιρέσετε το quota ή να βεβαιωθείτε ότι δεν έχει τεθεί, χρησιμοποιήστε την εντολή:
-[source,bash]
+[source,shell]
....
# zfs set groupquota@firstgroup=none
....
@@ -529,7 +529,7 @@ errors: No known data errors
Για να δειτε το quota για το [.filename]#storage/home/bob#, αν έχετε τα σωστά προνόμια ή είστε ο `root`, χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs get quota storage/home/bob
....
@@ -544,14 +544,14 @@ errors: No known data errors
Η γενική μορφή της ιδιότητας `reservation` είναι `reservation=size`. Για να θέσετε κράτηση 10 GB στο [.filename]#storage/home/bob# χρησιμοποιήστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# zfs set reservation=10G storage/home/bob
....
Για να αφαιρέσετε ένα reservation ή να βεβαιωθείτε ότι δεν έχει τεθεί, εκτελέστε την εντολή:
-[source,bash]
+[source,shell]
....
# zfs set reservation=none storage/home/bob
....
@@ -560,7 +560,7 @@ errors: No known data errors
Για να ελέγξετε αν υπάρχουν reservations ή refreservations στο [.filename]#storage/home/bob#, εκτελέστε μια από τις παρακάτω εντολές:
-[source,bash]
+[source,shell]
....
# zfs get reservation storage/home/bob
# zfs get refreservation storage/home/bob
@@ -579,14 +579,14 @@ errors: No known data errors
Αρχικά, φορτώστε το άρθρωμα στον πυρήνα:
-[source,bash]
+[source,shell]
....
# kldload ext2fs
....
Για να προσαρτήσετε έπειτα ένα τόμο man:ext2fs[5] που βρίσκεται στο [.filename]#/dev/ad1s1#:
-[source,bash]
+[source,shell]
....
# mount -t ext2fs /dev/ad1s1 /mnt
....
@@ -597,7 +597,7 @@ errors: No known data errors
Για να φορτώσετε το XFS ως άρθρωμα στον πυρήνα:
-[source,bash]
+[source,shell]
....
# kldload xfs
....
@@ -606,7 +606,7 @@ errors: No known data errors
Για να προσαρτήσετε ένα τόμο man:xfs[5] που βρίσκεται στο [.filename]#/dev/ad1s1#, εκτελέστε την παρακάτω εντολή:
-[source,bash]
+[source,shell]
....
# mount -t xfs /dev/ad1s1 /mnt
....
@@ -623,14 +623,14 @@ To σύστημα αρχείων Reiser, ReiserFS, μεταφέρθηκε στο
Φορτώστε αρχικά το άρθρωμα του πυρήνα:
-[source,bash]
+[source,shell]
....
# kldload reiserfs
....
Για να προσαρτήσετε ένα τόμο ReiserFS από το [.filename]#/dev/ad1s1#:
-[source,bash]
+[source,shell]
....
# mount -t reiserfs /dev/ad1s1 /mnt
....