亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在linux中安裝和使用ZFS

發布時間:2022-02-18 11:18:04 來源:億速云 閱讀:502 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關如何在linux中安裝和使用ZFS的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

ZFS文件系統的英文名稱為Zettabyte File System,也叫動態文件系統(Dynamic File System),是第一個128位文件系統。

如何在linux中安裝和使用ZFS

ZFS優勢

ZFS是一種先進的、高度可擴展的文件系統,最初是由Sun Microsystems開發的,現在OpenZFS是項目的一部分。有這么多文件系統可用在Linux上,那自然要問ZFS有什么特別之處。不同于其它文件系統,它不僅是一個文件系統邏輯卷管理器。ZFS使其受歡迎的特性是:

\1. 數據完整性——數據一致性和完整性通過即寫即拷和校驗技術保證。 \2. 存儲空間池——可用存儲驅動器一起放入稱為zpool的單個池。 \3. 軟件RAID ——像發出一個命令一樣,建立一個raidz數組。 \4. 內置的卷管理器——ZFS充當卷管理器。 \5. Snapshots、克隆、壓縮——這些都是一些ZFS提供的高級功能。

在本指南中,我們將學習在CentOS 7服務器上如何安裝、設置和使用一些重要的ZFS命令。

術語

在我們繼續之前,讓我們了解一些ZFS的常用的術語。 Pool:存儲驅動器的邏輯分組,它是ZFS的基本構建塊,從這里將存儲空間分配給數據集。 Datasets:ZFS文件系統的組件即文件系統、克隆、快照和卷被稱為數據集。 Mirror:一個虛擬設備存儲相同的兩個或兩個以上的磁盤上的數據副本,在一個磁盤失敗的情況下,相同的數據是可以用其他磁盤上的鏡子。 Resilvering:在恢復設備時將數據從一個磁盤復制到另一個磁盤的過程。 Scrub:擦除用于一致性檢驗在ZFS像在其他文件系統如何使用fsck。

安裝ZFS

為了對CentOS安裝ZFS,我們需要先安裝支持包EPEL倉庫,然后在ZFS存儲庫上安裝所需的ZFS包。

yum localinstall --nogpgcheck http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el7.noarch.rpm

現在安裝內核開發和zfs包,內核開發的軟件包是需要ZFS建立模塊和插入到內核中。

yum install kernel-devel zfs

驗證zfs模塊插入到內核使用的lsmod命令,如果沒有,使用‘modprobe命令手動插入它。

[root@li1467-130 ~]# lsmod |grep zfs[root@li1467-130 ~]# modprobe zfs[root@li1467-130 ~]# lsmod |grep zfszfs 2790271 0
zunicode 331170 1 zfs
zavl 15236 1 zfs
zcommon 55411 1 zfs
znvpair 89086 2 zfs,zcommon
spl 92029 3 zfs,zcommon,znvpair

讓我們檢查是否我們可以使用zfs的命令:

[root@li1467-130 ~]# zfs listno datasets available

管理

ZFS主要有兩個工具,zpool和ZFS。zpool處理使用磁盤實用程序創建和維護ZFS池負責數據的創建和維護。

zpool utility

創建和銷毀池 首先驗證可用的磁盤創建一個存儲池。

[root@li1467-130 ~]# ls -l /dev/sd*brw-rw---- 1 root disk 8,  0  Mar 16 08:12 /dev/sda
brw-rw---- 1 root disk 8, 16 Mar 16 08:12 /dev/sdb
brw-rw---- 1 root disk 8, 32 Mar 16 08:12 /dev/sdc
brw-rw---- 1 root disk 8, 48 Mar 16 08:12 /dev/sdd
brw-rw---- 1 root disk 8, 64 Mar 16 08:12 /dev/sde
brw-rw---- 1 root disk 8, 80 Mar 16 08:12 /dev/sdf

創建一個池的驅動器。

zpool create  # zpool create -f zfspool sdc sdd sde sdf

zpool狀態的命令顯示可用池的狀態。

[root@li1467-130 ~]# zpool statuspool: zfspool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zfspool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
errors: No known data errors

驗證如果池創建成功。

[root@li1467-130 ~]# df -hFilesystem    Size   Used      Avail  Use%   Mounted on
/dev/sda      19G    1.4G        17G      8%      /
devtmpfs    488M        0      488M      0%     /dev
tmpfs          497M        0      497M      0%    /dev/shm
tmpfs          497M    50M     447M     11%   /run
tmpfs          497M         0     497M      0%   /sys/fs/cgroup
tmpfs          100M         0     100M      0%   /run/user/0
zfspool         3.7G         0       3.7G      0%  /zfspoolv

如你所見,使用zpool創造了一個池的名字zfspool大小3.7 GB的空間,同時掛載在/ zfspool。 用命令 ‘zpool destroy’ 銷毀一個地址池:

zpool destroy[root@li1467-130 ~]# zpool destroy zfspool[root@li1467-130 ~]# zpool statusno pools available

現在讓我們嘗試創建一個簡單的鏡像池。

zpool create   mirror  ...

通過重復關鍵字的驅動器我們可以創建多個鏡像。

[root@li1467-130 ~]# zpool create -f mpool mirror sdc sdd mirror sde sdf[root@li1467-130 ~]# zpool statuspool: mpoolstate: ONLINEscan: none requestedconfig:NAME STATE READ WRITE CKSUMmpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0mirror-1 ONLINE 0 0 0sde ONLINE 0 0 0sdf ONLINE 0 0 0errors: No known data errors

在上面的例子中,我們創建了每兩個磁盤鏡像池。 同樣的,我們可以創建一個raidz池。

[root@li1467-130 ~]# zpool create -f rpool raidz sdc sdd sde sdf[root@li1467-130 ~]# zpool statuspool: rpoolstate: ONLINEscan: none requestedconfig:NAME STATE READ WRITE CKSUMrpool ONLINE 0 0 0raidz1-0 ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0sdf ONLINE 0 0 0errors: No known data errors

在ZFS池管理設備

一旦創建一個池,從池中可以添加或刪除熱備件和緩存設備,從鏡像池和替換設備中連接或者分離。但是冗余和raidz設備不能從池中刪除。我們將看到如何在這一節中執行這些操作。 我首先創建一個池稱為“testpool”組成的兩個設備,sdc和sdd。另一個設備sde將被添加到這里。

[root@li1467-130 ~]# zpool create -f testpool sdc sdd[root@li1467-130 ~]# zpool add testpool sde[root@li1467-130 ~]# zpool statuspool: testpoolstate: ONLINEscan: none requestedconfig:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0errors: No known data errors

正如前面提到的,我不能刪除這個新添加的設備,因為它不是一個冗余或raidz池。

[root@li1467-130 ~]# zpool remove testpool sdecannot remove sde: only inactive hot spares, cache, top-level, or log devices can be removed

但我可以在這個池添加一個空閑磁盤和刪除它。

[root@li1467-130 ~]# zpool add testpool spare sdf[root@li1467-130 ~]# zpool statuspool: testpoolstate: ONLINEscan: none requestedconfig:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0sparessdf AVAILerrors: No known data errors[root@li1467-130 ~]# zpool remove testpool sdf[root@li1467-130 ~]# zpool statuspool: testpoolstate: ONLINEscan: none requestedconfig:NAME        STATE       READ  WRITE   CKSUMtestpool    ONLINE       0          0               0sdc            ONLINE       0           0               0sdd            ONLINE      0            0               0sde            ONLINE      0            0               0errors: No known data errors

同樣的,我們可以使用attach命令附加磁盤鏡像或非鏡像的池和detach命令從鏡像磁盤池來分離。

zpool attach    zpool detach

當設備發生故障或損壞,我們可以使用replace命令替換它。

zpool replace

在鏡像配置當中我們將爆力的測試一個設備。

[root@li1467-130 ~]# zpool create -f testpool mirror sdd sde

這將創建一個鏡像磁盤池組成的SDD和SDE。現在,讓我們故意損壞SDD寫零到磁盤中。

[root@li1467-130 ~]# dd if=/dev/zero of=/dev/sdddd: writing to ‘/dev/sdd’: No space left on device2048001+0 records in2048000+0 records out1048576000 bytes (1.0 GB) copied, 22.4804 s, 46.6 MB/s

我們將使用“scrub”命令來檢測這種損壞。

[root@li1467-130 ~]# zpool scrub testpool[root@li1467-130 ~]# zpool statuspool: testpoolstate: ONLINEstatus: One or more devices could not be used because the label is missing orinvalid. Sufficient replicas exist for the pool to continuefunctioning in a degraded state.action: Replace the device using 'zpool replace'.see: http://zfsonlinux.org/msg/ZFS-8000-4Jscan: scrub repaired 0 in 0h0m with 0 errors on Fri Mar 18 09:59:40 2016config:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdd UNAVAIL 0 0 0 corrupted datasde ONLINE 0 0 0errors: No known data errors

現在我們用SDC替換SDD。

[root@li1467-130 ~]# zpool replace testpool sdd sdc; zpool statuspool: testpoolstate: ONLINEscan: resilvered 83.5K in 0h0m with 0 errors on Fri Mar 18 10:05:17 2016config:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0replacing-0 UNAVAIL 0 0 0sdd UNAVAIL 0 0 0 corrupted datasdc ONLINE 0 0 0sde ONLINE 0 0 0errors: No known data errors[root@li1467-130 ~]# zpool statuspool: testpoolstate: ONLINEscan: resilvered 74.5K in 0h0m with 0 errors on Fri Mar 18 10:00:36 2016config:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdc ONLINE 0 0 0sde ONLINE 0 0 0errors: No known data errors

池的遷移

我們可以使用導出和導入命令在不同的主機之間遷移存儲池。對于這個,在池中使用的磁盤應該從兩個系統中可用。

[root@li1467-130 ~]# zpool export testpool[root@li1467-130 ~]# zpool statusno pools available

zpool import命令列出所有可以利用的池。執行這個系統命令,你想要導入的池。

[root@li1467-131 ~]# zpool importpool: testpoolid: 3823664125009563520state: ONLINEaction: The pool can be imported using its name or numeric identifier.config:testpool ONLINEsdc ONLINEsdd ONLINEsde ONLINE

現在導入要求的池。

[root@li1467-131 ~]# zpool import testpool[root@li1467-131 ~]# zpool statuspool: testpoolstate: ONLINEscan: none requestedconfig:NAME STATE READ WRITE CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0errors: No known data errors

iostat

Iostat命令可以驗證池設備IO統計。

[root@li1467-130 ~]# zpool iostat -v testpoolcapacity          operations                        bandwidthpool          alloc      free            read     write             read   write----------    -----     -----            -----     -----                -----   -----testpool    1.80M  2.86G        22            27               470K  417Ksdc             598K   975M           8              9               200K  139Ksdd             636K  975M            7              9                135K  139Ksde             610K   975M           6              9                 135K 139K----------   -----     -----           -----          -----               -----  -----

zfs utility

我們現在會移動到ZFS utility。在這里,我們將看看如何創建、銷毀數據集、文件系統壓縮、配額和快照。

創建和銷毀文件系統

ZFS文件系統可以使用ZFS創建命令創建

zfs create[root@li1467-130 ~]# zfs create testpool/students[root@li1467-130 ~]# zfs create testpool/professors[root@li1467-130 ~]# df -hFilesystem                    Size             Used          Avail          Use%          Mounted on/dev/sda                       19G              1.4G          17G             8%                     /devtmpfs                   488M                  0      488M             0%                    /devtmpfs                          497M                  0       497M            0%                   /dev/shmtmpfs                          497M            50M       447M           11%                  /runtmpfs                          497M                 0        497M            0%                /sys/fs/cgrouptestpool                       2.8G                  0         2.8G            0%               /testpooltmpfs                          100M                  0        100M            0%             /run/user/0testpool/students     2.8G                   0         2.8G             0%            /testpool/studentstestpool/professors  2.8G                   0         2.8G             0%           /testpool/professors

從上面的輸出注意到,在文件系統創建時盡管沒有掛載點,掛載點創建時使用相同的路徑關系池。 ZFS創建允許使用-o選項可以指定使用像掛載點,壓縮、定額、執行等。 你可以列出可用的文件系統使用ZFS的列表:

[root@li1467-130 ~]# zfs listNAME                           USED     AVAIL     REFER    MOUNTPOINTtestpool                         100M       2.67G       19K         /testpooltestpool/professors        31K     1024M   20.5K        /testpool/professorstestpool/students        1.57M     98.4M   1.57M      /testpool/students

我們用銷毀選項銷毀文件系統。 zfs destroy

壓縮

現在我們將了解在ZFS怎樣壓縮,在我們開始使用壓縮之前,我們需要使它使用“設置壓縮”。

zfs set

一旦這樣做,壓縮和解壓縮將以透明模式發生在文件系統上面。 在我們的示例中,我將使學生目錄使用lz4壓縮算法壓縮。

[root@li1467-130 ~]# zfs set compression=lz4 testpool/students

我現在要復制一個文件到該文件系統大小15m,并檢查它的大小。

[root@li1467-130 /]# cd /var/log[root@li1467-130 log]# du -h secure15M secure
[root@li1467-130 ~]# cp /var/log/secure /testpool/students/[root@li1467-130 students]# df -h .Filesystem               Size     Used   Avail    Use%      Mounted on
testpool/students   100M   1.7M   99M        2%      /testpool/students

注意,使用文件系統的大小僅為1.7m,文件大小為15m,我們可以檢查壓縮比。

[root@li1467-130 ~]# zfs get compressratio testpoolNAME      PROPERTY         VALUE            SOURCE
testpool    compressratio     9.03x

配額和預訂

讓我用一個真實的例子來解釋配額。假設我們有一個要求,在一所大學,以限制磁盤空間使用的文件系統為教授和學生。讓我們假設我們需要分配給教授和學生分為1GB和100MB。我們可以利用“配額”在ZFS來滿足這一要求。配額確保文件系統使用的磁盤空間的數量不超過規定的限度。保留有助于在實際分配和保證所需的磁盤空間的數量是可用的文件系統。

zfs set quota=
zfs set reservation=
[root@li1467-130 ~]# zfs set quota=100M testpool/students[root@li1467-130 ~]# zfs set reservation=100M testpool/students[root@li1467-130 ~]# zfs listNAME                          USED      AVAIL    REFER    MOUNTPOINT
testpool                        100M       2.67G       19K        /testpool
testpool/professors      19K       2.67G        19K       /testpool/professors
testpool/students      1.57M       98.4M    1.57M    /testpool/students
[root@li1467-130 ~]# zfs set quota=1G testpool/professors[root@li1467-130 ~]# zfs listNAME                           USED     AVAIL    REFER    MOUNTPOINT
testpool                         100M     2.67G       19K          /testpool
testpool/professors       19K    1024M       19K         /testpool/professors
testpool/students       1.57M    98.4M    1.57M       /testpool/students

在上面的例子中,我們已經給教授和學生為1GB與100MB。觀察ZFS列表結果,最初,他們有2.67gb每個的大小和設置配額,價值也隨之發生了相應的變化。

快照

快照是在某個時間點的ZFS文件系統的只讀副本。他們不在ZFS池消耗任何額外的空間。我們可以回滾到相同的狀態,在稍后的階段,按用戶要求或僅提取一個單一的或一組文件。 我現在就從我們前面的例子,然后在在testpool/professors把這個文件系統快照創建一些目錄和文件。

[root@li1467-130 ~]# cd /testpool/professors/[root@li1467-130 professors]# mkdir maths physics chemistry[root@li1467-130 professors]# cat > qpaper.txtQuestion paper for the year 2016-17
[root@li1467-130 professors]# ls -latotal 4
drwxr-xr-x  5  root root    6   Mar 19 10:34 .
drwxr-xr-x  4  root root    4   Mar 19 09:59 ..
drwxr-xr-x  2  root root    2   Mar 19 10:33 chemistry
drwxr-xr-x  2  root root    2   Mar 19 10:32 maths
drwxr-xr-x  2  root root    2   Mar 19 10:32 physics
-rw-r--r--     1  root root  36   Mar 19 10:35 qpaper.txt

快照,可以使用下面的語法:

zfs snapshot [root@li1467-130 professors]# zfs snapshot testpool/professors@03-2016[root@li1467-130 professors]# zfs list -t snapshotNAME                                             USED         AVAIL     REFER     MOUNTPOINT
testpool/professors@03-2016       0                -                20.5K

我現在將刪除創建的文件和提取的快照。

[root@li1467-130 professors]# rm -rf qpaper.txt[root@li1467-130 professors]# lschemistry maths physics
[root@li1467-130 professors]# cd .zfs[root@li1467-130 .zfs]# cd snapshot/03-2016/[root@li1467-130 03-2016]# lschemistry maths physics qpaper.txt
[root@li1467-130 03-2016]# cp -a qpaper.txt /testpool/professors/[root@li1467-130 03-2016]# cd /testpool/professors/[root@li1467-130 professors]# lschemistry maths physics qpaper.txt

已刪除的文件返回其位置。 我們可以列出所有可用的快照使用ZFS的列表:

[root@li1467-130 ~]# zfs list -t snapshotNAME                                             USED     AVAIL    REFER    MOUNTPOINT
testpool/professors@03-2016    10.5K       -              20.5K       -

最后,讓我們使用zfs摧毀命令銷毀快照:

zfs destroy [root@li1467-130 ~]# zfs destroy testpool/professors@03-2016[root@li1467-130 ~]# zfs list -t snapshotno datasets available

感謝各位的閱讀!關于“如何在linux中安裝和使用ZFS”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐边县| 景洪市| 和田市| 阿拉善右旗| 成武县| 凤冈县| 新乡县| 蒙山县| 孝昌县| 海伦市| 榆林市| 安丘市| 安仁县| 东城区| 广州市| 息烽县| 界首市| 科技| 绥芬河市| 温宿县| 安康市| 承德县| 云安县| 谢通门县| 翼城县| 乐清市| 汝城县| 炎陵县| 绥宁县| 乐安县| 永康市| 奇台县| 钟山县| 诸暨市| 榆中县| 林州市| 秦皇岛市| 类乌齐县| 金华市| 兴仁县| 七台河市|