Toggle navigation
gienginali
:::
主選單
資訊安全
網路測速
線上書籍
登入
登入
帳號
密碼
登入
:::
新聞載入中,請稍後...
所有書籍
「自建 samba + ZFS (snhpshot快照/任意還原點)檔案伺服器」目錄
MarkDown
5-2 查看已建立的新硬碟
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-4 單一硬碟
自建 samba + ZFS (snhpshot快照/任意還原點)檔案伺服器 ====================================== 1.
ZFS 建路陣列指令
ZFS 指令
啟用壓縮指令 (proxmox ve主機)
單一硬碟建立 ZFS檔案系統儲存池
zpool create -f -o ashift=12 <pool-name> <device>
zfs set compression=lz4 <pool-name>
建立 Raid 0 最少1顆以上硬碟
zpool create -f -o ashift=12 <pool-name> <device1> <device2> ... 資料會平均分配寫入各顆硬碟,若其中一顆硬碟毀損,全部的資料也將會一起毀損。 優點是寫入速度快
zfs set compression=lz4 <pool-name>
建立 Raid 1 最少2顆以上硬碟
zpool create -f -o ashift=12 <pool-name> mirror <device1> <device2> 建立 Raid1(1+1=1) Mirror 格式,資料會同時寫入兩棵 HD。 (這是最佳建議方式,安全性也較高)
zfs set compression=lz4 <pool-name>
建立 Raid 10 最少4顆以上硬碟
zpool create -f -o ashift=12 <pool-name> mirror <device1> <device2> mirror <device3> <device4>
zfs set compression=lz4 <pool-name>
建立 Raid Z-1 最少3顆以上硬碟
zpool create -f -o ashift=12 <pool-name> raidz1 <device1> <device2> <device3>
建立 Raid Z-2 最少4顆以上硬碟
zpool create -f -o ashift=12 <pool-name> raidz2 <device1> <device2> <device3> <device4>
2.
zfs 的即時壓縮功能(預設是關閉) 主機的 CPU Loading 若效能還有剩餘,可以啟用 zfs compression 功能, 但若效能剛好或不足,則建議使用較低的壓縮效率或關閉即時壓縮功能 debian 主機 compression YES YES on | off | lzjb | gzip | gzip-\[1-9\] | zle
1.
查看 storage/compressed 檔案目錄屬性 zfs get all storage/compressed
3.
常用指令
1.
ZFS 的 zpool 指令
1.
\# 建立 Raid1(1+1=1) Mirror 格式,資料會同時寫入兩棵 HD。
\# zpool create storagename mirror /dev/sdb /dev/sdc
\# df -h
# 查看 storage pool 是有已經建立
Filesystem Size Used Avail Capacity Mounted on
pool1 16G 112K 16G 1% /pool1
2.
\# zpool status
# 查看本機 ZFS 的狀態,這個系統中有一個 pool 名稱為 pool1 是由兩棵代號 sdb 及 sdc 的實體硬碟 mirror 而成
root@debian8:~# zpool status pool: pool1 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM
pool1
ONLINE 0 0 0
mirror-0
ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 errors: No known data errors
3.
\# zpool list
# 查看 pool 的空間使用狀態
root@debian8:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT pool1 7.94G 388K 7.94G 0% 1.00x ONLINE -
4.
\# zpool offline pool1 /dev/sdb
# 讓 storage 這個 pool 的 ad2 硬碟暫時離線
root@debian8:~# zpool offline pool1 /dev/sdb
5.
\# zpool status pool1
# 查看狀態會有 DEGRADED 警告
root@debian8:~# zpool status pool1 pool: pool1 state:
DEGRADED
status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool1
DEGRADED
0 0 0 mirror-0
DEGRADED
0 0 0 sdb OFFLINE 0 0 0 sdc ONLINE 0 0 0 errors: No known data errors
6.
\# zpool online pool1 /dev/sdb
# 讓 pool1 這個 pool 的 /dev/sdb 硬碟重新上線
root@debian8:~# zpool online pool1 /dev/sdb
7.
\# zpool status pool1
# 查看狀態 DEGRADED 警告已解除
root@debian8:~# zpool status pool1 pool: pool1 state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Sat Jul 1 11:24:41 2017 config: NAME STATE READ WRITE CKSUM pool1 ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 12K resilvered sdc ONLINE 0 0 0 errors: No known data errors
8.
\# zpool export -f pool1
# 卸除(umount) pool1 這個 pool 參數 -f (Force) 為強制卸除
root@debian8:~# zpool export pool1 -f
9.
\# df -h
# 查看是否 umount,已無 pool1 這個 pool
root@debian8:~# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/sda1 1.9G 1004M 733M 58% / udev 10M 0 10M 0% /dev tmpfs 150M 4.6M 145M 4% /run tmpfs 374M 0 374M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 374M 0 374M 0% /sys/fs/cgroup
10.
\# zpool import
# 列出目錄系統上存在但尚未掛載的 pool storage
root@debian8:~# zpool import pool: pool1 id: 244594555867708236 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: pool1 ONLINE mirror-0 ONLINE disk/by-id/ata-VBOX\_HARDDISK\_VB5260512b-73cfc5a7 ONLINE disk/by-id/ata-VBOX\_HARDDISK\_VBff905153-79c3b58a ONLIN
11.
\# zpool import -f
\# 強制掛載目前系統上所有存在且未掛載(mount) 的 pool storage
12.
\# zpool import pool1
# 掛載(mount) storage 這個 pool
root@debian8:~# zpool import pool1 13.
\# df -h
# 查看是否 mount,已重新掛載 storage pool
root@debian8:~# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/sda1 1.9G 1004M 733M 58% / udev 10M 0 10M 0% /dev tmpfs 150M 4.6M 145M 4% /run tmpfs 374M 0 374M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 374M 0 374M 0% /sys/fs/cgroup
pool1 7.9G 112K 7.9G 1% /pool1
14.
\# zpool scrub storage
# 手動驗證 storage 這個 pool 中所有資料的完整性 # 部份版本的 zfs 不提供
15.
\# zpool replace pool1 /dev/sdd /dev/sde
# 在 storage pool1 中用新的
/dev/sdd /dev/sde
取代原本的
/dev/sdb /dev/sdc
兩棵 HD
2.
ZFS 的 zfs 指令
1.
\# zfs create pool1/compressed
# 在 pool1 這個 pool 中建立一個檔案目錄叫 compressed
\# zfs list
# 查看 ZFS 檔案狀態
root@debian8:~# zfs list NAME USED AVAIL REFER MOUNTPOINT pool1 524K 7.81G 112K /pool1 pool1/compressed 112K 7.81G 112K /pool1/compressed #以df -h 查看 root@debian8:~# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/sda1 1.9G 1004M 733M 58% / udev 10M 0 10M 0% /dev tmpfs 150M 4.6M 145M 4% /run tmpfs 374M 0 374M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 374M 0 374M 0% /sys/fs/cgroup pool1 7.9G 120K 7.9G 1% /pool1 pool1/compressed 7.9G 112K 7.9G 1% /pool1/compressed
2.
\# zfs set compression=gzip pool1/compressed
# 將 compressed 目錄設定成 gzip 壓縮格式
\# zfs set compression=off pool1/compressed
# 解除 compressed 目錄設的壓縮格式
\# zfs mount
# 查看所有 ZFS 掛載的磁區
root@debian8:~# zfs mount pool1 /pool1 pool1/compressed /pool1/compressed
3.
\# zfs get all pool1/compressed
# 查看 pool1/compressed 檔案目錄屬性
root@debian8:~# zfs get all pool1/compressed NAME PROPERTY VALUE SOURCE pool1/compressed type filesystem - pool1/compressed creation 六 7月 1 11:53 2017 - pool1/compressed used 112K - pool1/compressed available 7.81G - pool1/compressed referenced 112K - pool1/compressed compressratio 1.00x - pool1/compressed mounted yes - pool1/compressed quota none default pool1/compressed reservation none default pool1/compressed recordsize 128K default pool1/compressed mountpoint /pool1/compressed default pool1/compressed sharenfs off default pool1/compressed checksum on default pool1/compressed compression off default pool1/compressed atime on default pool1/compressed devices on default pool1/compressed exec on default pool1/compressed setuid on default pool1/compressed readonly off default pool1/compressed zoned off default pool1/compressed snapdir hidden default pool1/compressed aclmode groupmask default pool1/compressed aclinherit restricted default pool1/compressed canmount on default pool1/compressed xattr on default pool1/compressed copies 1 default pool1/compressed version 4 - pool1/compressed utf8only off - pool1/compressed normalization none - pool1/compressed casesensitivity sensitive - pool1/compressed vscan off default pool1/compressed nbmand off default pool1/compressed sharesmb off default pool1/compressed refquota none default pool1/compressed refreservation none default pool1/compressed primarycache all default pool1/compressed secondarycache all default pool1/compressed usedbysnapshots 0 - pool1/compressed usedbydataset 112K - pool1/compressed usedbychildren 0 - pool1/compressed usedbyrefreservation 0 - pool1/compressed logbias latency default pool1/compressed dedup off default pool1/compressed mlslabel off - 4. \# 只查看 pool1/compressed 目錄中 compression 屬性 root@debian8:~# zfs get compression pool1/compressed NAME PROPERTY VALUE SOURCE pool1/compressed compression off default
5.
\# zfs set quota=3G pool1/compressed
\# 可設定檔案空間大小為 3G 但 storage 這個 pool 總大小為 7.9G 如果 3G 滿了而 7.9G 還未用完會 share 給 /pool1/compressed 繼續使用
\# df -h
# 查看 storage/compressed 的 Avail 變成 3G
檔案系統 容量 已用 可用 已用% 掛載點
pool1 7.9G 120K 7.9G 1% /pool1 pool1/compressed 3.0G 112K 3.0G 1% /pool1/compressed
6.
\# zfs set reservation=3g pool1/compressed
# 設定保留了 3G 給 /pool1/compressed
\# df -h
# 查看 pool1 的 Size 變成 4.9G,這是因為保留了 3G 給 /pool1/compressed,代表 /pool1/compressed 真正擁有 3G 別的 filesystem 是不能跟它 share 的
root@debian8:~# zfs set reservation=3G pool1/compressed root@debian8:~# df -h 檔案系統 容量 已用 可用 已用% 掛載點 pool1 4.9G 120K 4.9G 1% /pool1 pool1/compressed 3.0G 112K 3.0G 1% /pool1/compressed
7.
\# zfs create pool1/data
# 於 storage pool 中再建立一個 data 檔案目錄
\# zfs set mountpoint=/data pool1/data
# 設定真實掛載點原本 Mounted on 會由 /pool1/data 變成到 /data
\# df
檔案系統 容量 已用 可用 已用% 掛載點 pool1/compressed 3.0G 112K 3.0G 1% /pool1/compressed
pool1/data
4.9G 112K 4.9G 1%
/data
8.
\# zfs set sharenfs=rw pool1/data
# 設定分享權限可讀及寫,通常用在 NFS 分享上root@debian8:~# zfs set sharenfs=rw pool1/data cannot share 'pool1/data': exportfs failed property may be set but unable to reshare filesystem
9.
\# zfs snapshot pool1/compressed@2017-07-05
\# touch /pool1/compressed/1234
# 建一個檔案到 compressed 目錄下
\# zfs snapshot pool1/compressed@2017-07-051
\# zfs snapshot pool1/compressed@2017-07-052
# snapshot compressed 目錄,取個隨便名稱就用今天日期
10.
**
zfs list -t snapshot # 列出所有的snapshot(快照)
** root@debian8:~# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT
pool1/compressed@2017-07-05 0 - 112K - pool1/compressed@2017-07-051 0 - 112K - pool1/compressed@2017-07-052 0 - 112K -
**
**
11.
**
zfs list -t all
** # 列出所有的zfs檔案系統 root@debian8:~# zfs list -t all NAME USED AVAIL REFER MOUNTPOINT pool1 3.00G 4.81G 120K /pool1 pool1/compressed 112K 3.00G 112K /pool1/compressed pool1/compressed@2017-07-05 0 - 112K - pool1/compressed@2017-07-051 0 - 112K - pool1/compressed@2017-07-052 0 - 112K - pool1/data 112K 4.81G 112K /data
12.
\# pool1/compressed@2017-07-051 # 刪除 pool1/compressed@2017-07-051 這個 snapshot root@debian8:~# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool1/compressed@2017-07-05 0 - 112K - pool1/compressed@2017-07-052 0 - 112K -
13.
\# 回復到某一個快照點 # 先刪除剛剛產生的檔案 **root@debian8:~#
rm /pool1/compressed/1234
** root@debian8:~# ll /pool1/compressed/ 總計 17 drwxr-xr-x 2 root root 2 7月 1 12:24 ./ drwxr-xr-x 3 root root 3 7月 1 12:04 ../ **
再將zfs檔案系統還原到刪除前的snapshot
** root@debian8:~#
zfs rollback pool1/compressed@2017-07-052
root@debian8:~#
ls -alF /pool1/compressed/
總計 18 drwxr-xr-x 2 root root 3 7月 1 12:23 ./ drwxr-xr-x 3 root root 3 7月 1 12:04 ../ -rw-r--r-- 1 root root 0 7月 1 12:23
1234
14.
\# zfs destroy pool1/compressed
# 可刪除 pool1/compressed 檔案目錄 root@debian8:~#
zfs list -t all
NAME USED AVAIL REFER MOUNTPOINT pool1 3.00G 4.81G 120K /pool1 pool1/compressed 280K 3.00G 112K /pool1/compressed pool1/compressed@2017-07-05 88K - 112K - pool1/compressed@2017-07-052 80K - 112K - pool1/data 112K 4.81G 112K /data # 在 pool1/compressed 檔案系統裡還有兩個快照存在 # 直接刪除檔案系統 root@debian8:~# zfs destroy pool1/compressed cannot destroy 'pool1/compressed': filesystem has children use '-r' to destroy the following datasets: pool1/compressed@2017-07-05 pool1/compressed@2017-07-052
:::
展開
|
闔起
文章類別
書籍目錄
展開
|
闔起
線上使用者
4
人線上 (
3
人在瀏覽
線上書籍
)
會員: 0
訪客: 4
更多…