Toggle navigation
gienginali
:::
主選單
資訊安全
網路測速
線上書籍
登入
登入
帳號
密碼
登入
:::
新聞載入中,請稍後...
所有書籍
「自建 samba + ZFS (snhpshot快照/任意還原點)檔案伺服器」目錄
MarkDown
5-1-3 管理與維護
1. 簡介
2. 開始
2-1 Samba 簡介
2-2 Linux 伺服器安裝
2-3 create mode
3. 安裝
3-1 準備安裝軟體
3-2 安裝 VirtualBox
3-3 安裝Debian8
3-3-1 完裝完成後手動設定固定ip
3-4 微調
3-5 安裝samba與相關套件
3-6 安裝 zfs 套件
3-7 新增二顆儲存虛擬硬碟
4. samba 設定
4-1 Samba 伺服器設定
4-2 基本設定
4-2-1 新增任何使用者及訪客皆可讀寫之分享資料夾
4-2-2 使用者家目錄權限設定
4-2-3 設定需帳號密碼才可登入瀏覽提高檔案伺服器管理安全層級
4-2-4 增一般使用者唯讀分享資料夾
4-2-5 增隱藏分享資料夾
4-2-6 修改主機名稱
4-3 進階設定
4-3-1 實作-samba 設定
4-3-2 建立目錄結構
4-3-3 建立使用者
4-3-4 建立群組
4-3-5 實作-分享目錄權限設定
5. ZFS
5-1 ZFS - Raid
5-1-1 建raid1
5-1-2 建raidz
5-1-3 管理與維護
5-1-4 效能測試
5-2 查看已建立的新硬碟
5-3 認識 zfs格式化 指令
5-4 單一硬碟
5-5 以 ZFS 製作 ZFS Raid0
5-6 以 ZFS 製作 ZFS Raid1
5-7 作業
5-7-1 作業過程
6. samba 目錄+zfs 檔案系統
6-1 將 samba 的 分享目錄移至 zfs 硬碟上
6-2 zfs 快照與回復
6-3 zfs 分割區 直接複製備份 (Replication)
6-4 不同主機間 dataset 複製
6-4-1 本機對本機實做
6-5 差異性備份(增量複製)
6-6 rollback 快照時光機
6-7 從快照中還原個別檔案或目錄
6-7-1 從快照還原個別檔案-原理
6-8 刷洗 scrub (linux的 fsck)
7. 參考文件
7-1 VirtualBox 虛擬機使用 實體硬碟
7-2 Proxmox Physical disk to kvm (KVM 虛擬機直接使用實體硬碟)
7-3 How To Create A NAS Using ZFS and Proxmox (with pictures)
7-4 zfs 入門與管理技術
5-2 查看已建立的新硬碟
自建 samba + ZFS (snhpshot快照/任意還原點)檔案伺服器 ======================================
4.效能測試
-------------------------------------------
由於raidz有多種組合,對於硬碟數量比較多的人確實有必要了解一下什麼樣的組合效能才是最好,當然可用的最大空間也是考量之一,因此底下的測試也有把可用空間寫進去。
說明一下我的測試環境: CPU:CPU E5-2660 v4 \*2 RAM:64G\*4=256GB HDD:Segate 7200RPM 1TB\*28顆硬碟 主機板型號:[X10DSC+](https://www.supermicro.com.tw/products/motherboard/Xeon/C600/X10DSC_.cfm) 機殼型號:[6048R-E1CR60L](https://www.supermicro.com.tw/products/system/4U/6048/SSG-6048R-E1CR60L.cfm) SAS卡型號:AOC-S3008L-L8-P 使用晶片是LSI 3008 背板型號:[BPN-SAS3-946SEL1](https://www.supermicro.com/manuals/other/BPN-SAS3-946SEL.pdf)
底下的測試主要參考這兩頁而來:[calomel.org](https://calomel.org/zfs_raid_speed_capacity.html)、[icesquare.com](https://icesquare.com/wordpress/zfs-performance-mirror-vs-raidz-vs-raidz2-vs-raidz3-vs-striped/)、
說明一下我的測速指令: #寫入測速指令
dd if=/dev/zero of=/vic2/file.out bs=4096 count=80000000 &
327680000000 bytes (328 GB) copied, 597.424 s, 548 MB/s 指令的最後方加個 & 符號,將程序丟到背景去跑,接著可用
kill -USR1 PID號
來看dd的執行狀態 共寫入328GB,需要寫入這麼大的檔案用意是要超出我系統上的256G RAM,避免cache影響到測速。 寫入時亦可用底下的指令來看IO狀況
zpool iostat vic2 -v 1
#讀取測試指令
dd if=/vic2/file.out of=/dev/null bs=4096 &
327680000000 bytes (328 GB) copied, 456.144 s, 718 MB/s zfs建28顆硬碟 raid 指令參考:
raidz3 28顆\*1組 zpool create -f vic2 raidz3 sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad} raidz2 14顆\*2組 建14顆raidz2兩組的指令,有兩種下法 一行指令搞定 zpool create -f vic2 raidz2 sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p} raidz2 sd{q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad} 兩行指令搞定 zpool create -f vic2 raidz2 sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p} zpool add vic2 raidz2 sd{q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad} raidz3 7顆\*4組 zpool create -f vic2 raidz3 sd{c,d,e,f,g,h,i} raidz3 sd{j,k,l,m,n,o,p} raidz3 sd{q,r,s,t,u,v,w} raidz3 sd{x,y,z,aa,ab,ac,ad} mirror 2顆\*14組 zpool create -f vic2 mirror sd{c,d} mirror sd{e,f} mirror sd{g,h} mirror sd{i,j} mirror sd{k,l} mirror sd{m,n} mirror sd{o,p} mirror sd{q,r} mirror sd{s,t} mirror sd{u,v} mirror sd{w,x} mirror sd{y,z} mirror sd{aa,ab} mirror sd{ac,ad} raid0 28顆 zpool create -f vic2 sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad}
底下是測試報告:
格式
組數
硬碟數
可用總容量
寫MB/s
讀MB/s
備註
raidz3
1
28
22T
541
700
raidz3
2
14
20T
566
769~780
raidz3
4
7
14T
525
751
raidz2
1
28
23T
548
718
raidz2
2
14
21T
566~580
823~830
註1
raidz2
3
9
19T
539
542
註2
raidz2
4
7
18T
544
906
raidz1
1
28
24T
551
692
raidz1
2
14
23T
576
880
raidz1
4
7
21T
565
889
raid0
1
28
25T
592
1126
註3
mirror
1
28
899G
202
585
mirror
2
14
1.8T
441
652
mirror
14
2
13T
579
939
註4
註1:因考慮用raidz2 2組\*14顆這樣的組合,所以測了兩次以上。其實不只raidz2其它組合每次測的數字都不太一樣,因此只能取個範圍值。 註2:3組\*9顆硬碟=共27顆硬碟,沒錯少一顆硬碟沒用上。 註3:raid0無法分組別,也無資料保護,因此實務上不太會這樣用,在此是純測速用 註4:mirror 14組\*2顆 它的速度接近raid0了,至於1組mirror裡面超過兩顆以上的硬碟其實意義不大,讀寫效能都很差。 心得:之前看到這個[官方建議](https://www.freebsd.org/doc/zh_TW/books/handbook/zfs-term.html#zfs-term-vdev-cache),單一個vdev不要超過9個硬碟,經我實測的結果,發現這個建議好象沒有什麼用,超過9個硬碟的效能一樣好,沒有太大效能損失。若你不需要那麼多的儲存空間的話,而又需要資料有比較安全的保護,會推薦你使用 mirror 14組\*2顆 這樣子的組合,效能接近 raid0 ,若比較需要多一點儲存空間的話,那會建議你使用 raidz2 2組\*14顆 這樣的組合。 至於raidz1 (同raid5),若你的資料很重要的話,不管是哪樣的組合都不推薦你使用,雖然它的效能跟可用空間看來都不錯,但因為它只允許一顆硬碟壞掉,這很危險。在實際使用上,我們的硬碟大多都是同一時期買進的,當用了一段時間之後,出現第一顆硬碟故障時,也差不多是其它硬碟要到壽了,此時你將一顆新硬碟替換上去時,其它的硬碟為了要同步資料,就開始被狂操,而那些快到壽的硬碟很有可能就被你操掛了,因此在第一顆新硬碟還未同步完,就又出現第二顆硬碟故障,那你整個raid的資料就會死掉。而在 zfs raidz1 裡,不管是兩組raidz1或是4組 raidz1 只要其中一組 raidz1 同時壞兩顆硬碟,那你整個儲存池(pool)會被退出。 上述的測試報告,有網友提醒我有效能不足的問題,因此我又做了不同的測試
###
mdadm raid0 測試
我擔心有可能是zfs效能不足的問題,因此我把 zfs 毀了,改用 mdadm 來建 raid0 測試 mdadm建raid0指令和測試指令參考:
28顆硬碟建raid0指令如下: mdadm --creat /dev/md1 --auto=yes --level=0 --raid-devices=28 /dev/sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad} 格式化 mkfs.ext4 /dev/md1 掛載 mount /dev/md1 /mnt/tmp 寫入測試指令 dd if=/dev/zero of=/mnt/tmp/file.out bs=4096 count=80000000 & 測試結果 327680000000 bytes (328 GB) copied, 258.264 s, 1.3 GB/s 讀取指令測試 dd if=/mnt/tmp/file.out of=/dev/null bs=4096 & 327680000000 bytes (328 GB) copied, 161.322 s, 2.0 GB/s 讀取速度有到 2GB/s 毀掉raid0指令參考: umount /mnt/tmp dd if=/dev/zero of=/dev/md1 bs=1M count=50 mdadm --stop /dev/md1 dd if=/dev/zero of=/dev/sd{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad} bs=1M count=10 13顆硬碟建raid0指令如下: mdadm --creat /dev/md1 --auto=yes --level=0 --raid-devices=13 /dev/sd{c,d,e,f,g,h,i,j,k,l,m,n,o} 測試結果 327680000000 bytes (328 GB) copied, 335.788 s, 976 MB/s 8顆硬碟建raid0指令如下: mdadm --creat /dev/md1 --auto=yes --level=0 --raid-devices=8 /dev/sd{c,d,e,f,g,h,i,j} 測試結果 327680000000 bytes (328 GB) copied, 356.641 s, 919 MB/s 4顆硬碟建raid0指令如下: mdadm --creat /dev/md1 --auto=yes --level=0 --raid-devices=4 /dev/sd{c,d,e,f} 測試結果 327680000000 bytes (328 GB) copied, 373.97 s, 876 MB/s
底下是 mdadm raid0的測試報告
硬碟數量
28顆
13顆
8顆
4顆
寫入速度
1.3GB/s
976 MB/s
919 MB/s
876 MB/s
注意上面的硬碟數,從最少的看起4顆就有876MB/s,但可不是隨著硬碟越多,速度就會跟著往上升...跟什麼因素有關,目前我不清楚。 網友提醒我 zfs pool 預設的 record size 是 128kb,可參閱[此頁](http://blog.programster.org/zfs-record-size/)。建議我的dd測試指令可改用128kb來測試看看。 1kb=1024bytes 128kb → 1024\*128 = 131072 bytes 256kb → 1024\*256 = 262144 bytes 因此我們的測試指令改為 寫入測試指令 dd if=/dev/zero of=/vic2/file.out bs=131072 count=40000 & 上面的bs=131072 可簡寫成 bs=128k 讀取測試指令 dd if=/vic2/file.out if=/dev/zero bs=131072 & 測出來的寫入速度 raid0 有達到最高3GB/s mirror 2顆\*14組 達 2.5GB/s 但是讀取速度就少的可憐了,都只有11MB/s 由於效能最好的raid0跟mirror測出來的讀取速都只有11MB/s這麼低,因此就不多做其它組合的測試了,意義不大。
####
測試結論
使用dd 指定 bs=128k 的方式來測寫入速度,請參考下圖  上圖是使用此指令 zpool iostat vic2 -v 1 來看的。 3.5" HDD 7200轉的傳輸速率在 65~115MB/s 之間,上圖的每顆單碟的速度都接近100MB/s了,這個128k的寫入測試,可說是把單碟的最高效能給逼出來了。 2.64GB/s 這數字是浮動的,我看到最高達 3GB/s ,總共28顆硬碟,也就是說單碟速度有超過 100MB/s。 此測試報告主要是要確認此台主機硬體的架構沒有問題即可,之前我擔心是否SAS卡或背板(expander)頻寬有效能不足的問題,經此測試確認了沒有效能不足的問題之後,就可安心使用了。美超微有針對我這台機器提供了測試報告給我,我這台機器背板的頻寬上限是6GB/s 他的測試是大約在25顆左右的硬碟數量即達此極限。
:::
展開
|
闔起
文章類別
書籍目錄
展開
|
闔起
線上使用者
19
人線上 (
14
人在瀏覽
線上書籍
)
會員: 0
訪客: 19
更多…