Đề xuất về ZFS trên FreeBSD dưới dạng hộp NAS?


9

Xin lưu ý rằng các câu trả lời trên trang này là từ năm 2009, và không nên dựa vào như là phúc âm. Nếu bạn có một câu hỏi cụ thể về thì hãy nhấp vào nút Hỏi một câu hỏi và đặt một câu hỏi cụ thể.

Tôi đã nghĩ đến việc xây dựng một hệ thống sao lưu gia đình bằng FreeBSD 7.2 và hệ thống tệp ZFS. Có ai có bất kỳ kinh nghiệm với hệ thống tập tin đó?

Đặc biệt:

  • Có thể khởi động từ ZFS không? (Tôi có muốn không?)
  • Làm thế nào dễ dàng để thêm một ổ đĩa?
  • Làm thế nào tốt nó xử lý các ổ đĩa có kích thước khác nhau?
  • Bạn có thể thêm các ổ đĩa mới một cách nhanh chóng (hoặc ít nhất là chỉ với một lần khởi động lại) không?
  • Tôi sẽ được phục vụ tốt hơn bởi một cái gì đó ra khỏi kệ?

Bất kỳ suy nghĩ và đề xuất khác sẽ được hoan nghênh.

Biên tập:

Để rõ ràng, tôi đã đọc trang FreeBSD trên ZFS . Tôi đang tìm kiếm gợi ý từ những người có kinh nghiệm thực tế với thiết lập tương tự với những gì tôi muốn.

Câu trả lời:


13

Tôi xây dựng một máy chủ tệp FreeBSD tại nhà bằng cách sử dụng ZFS.

Đó là AMD X2 3200+ với RAM 3GB. Nó có một PCI Express Gig-E. Ổ đĩa khởi động là 400GB cũ và tôi có 4 ổ 750 GB Seagte (một ổ có phiên bản phần sụn khác nhau, chỉ trong trường hợp).

Khởi động từ ZFS sẽ rất tốt (nó sẽ giúp cài đặt đơn giản hơn), nhưng tôi đã sử dụng các hướng dẫn ZFSOnRoot để thiết lập ổ đĩa Root / OS với ZFS (nếu tất cả các phân vùng là ZFS, thì nó không cần phải thực hiện fsck khi khởi động để kiểm tra các hệ thống tập tin UFS). Lý do bạn muốn điều này là sau đó bạn có thể thiết lập tất cả các phân vùng của mình (/ var, / usr, / tmp, v.v.) với các tùy chọn khác nhau theo yêu cầu (chẳng hạn như noatime và async cho / usr / obj, sẽ tăng tốc kernel biên dịch), nhưng tất cả chúng sẽ chia sẻ không gian từ một nhóm chung. Sau đó, bạn có thể thiết lập một ổ dữ liệu và cung cấp cho mỗi người dùng một phân vùng của riêng họ (với các trích dẫn và cài đặt khác nhau). Sau đó, bạn có thể chụp ảnh nhanh (chi phí thấp trên ZFS).

My home server has a df that looks like:
/dev/ad0s1a           1.9G    744M    1.1G    41%    /
devfs                 1.0K    1.0K      0B   100%    /dev
dozer/data            1.8T     62G    1.7T     3%    /data
dozer/home            1.7T    9.6G    1.7T     1%    /home
dozer/home/walterp    1.9T    220G    1.7T    11%    /home/walterp
tank/tmp              352G    128K    352G     0%    /tmp
tank/usr              356G    4.4G    352G     1%    /usr
tank/var              354G    2.2G    352G     1%    /var

Hiệu suất khôn ngoan, sao chép tập tin là thực sự nhanh chóng. Một điều mà tôi cần lưu ý là tôi đã sử dụng ZFS trên các hệ thống AMD64 FreeBSD có 3-4GB và nó hoạt động tốt, nhưng từ khi đọc, tôi lo lắng về việc chạy nó trên hệ thống i386 có 2GB hoặc ít bộ nhớ

Tôi đã hết các cổng SATA trên bo mạch chủ, vì vậy tôi chưa thử thêm bất kỳ ổ đĩa mới nào. Thiết lập ban đầu rất đơn giản, một lệnh để tạo RAIDZ và sau đó là lệnh tạo / home, được định dạng trong vài giây (IIRC). Tôi vẫn đang sử dụng phiên bản ZFS (v6) cũ hơn, vì vậy nó có một số hạn chế (Nó không yêu cầu ổ đĩa có kích thước bằng nhau, nhưng không giống như Dropbo, nếu bạn có 3 ổ 750 GB và ổ 1TB, kết quả cuối cùng sẽ như thể bạn có 4 ổ đĩa 750 GB).

Một trong những lý do lớn mà tôi đã sử dụng ZFS với RAIDZ là tổng kiểm tra từ đầu đến cuối. Cern đã xuất bản một bài báo ghi lại một bài kiểm tra mà họ đã thực hiện khi phát hiện hơn 200 lỗi đọc không đáng có trong khi chạy thử nghiệm R / W trong khoảng thời gian vài tuần (ECC trong các ổ đĩa bán lẻ dự kiến ​​sẽ bị lỗi mỗi 12TB khi đọc). Tôi muốn dữ liệu trên máy chủ của tôi là chính xác. Tôi gặp sự cố nghiêm trọng do mất điện (ai đó đã làm quá tải UPS bằng cách cắm máy sưởi không gian vào nó), nhưng khi hệ thống có thể hoạt động trở lại, ZFS đã quay lại nhanh chóng, không gặp sự cố fsck tiêu chuẩn.

Tôi thích nó, vì sau đó tôi có thể thêm CUPS vào Samba để có được một máy chủ in. Tôi đã thêm bộ đệm DNS và có thể thêm phần mềm khác tùy thích (Tôi đang suy nghĩ về việc thêm giám sát SNMP vào máy tính để bàn tại nhà để đo mức sử dụng băng thông). Đối với những gì tôi đã chi cho hệ thống, tôi chắc chắn rằng tôi có thể mua một hộp NAS giá rẻ, nhưng sau đó tôi sẽ không có hộp Unix 64 bit cục bộ để chơi. Nếu bạn thích FreeBSD tôi muốn nói hãy đi với nó. Nếu bạn thích Linux, thì tôi muốn giới thiệu một giải pháp Linux. Nếu bạn không muốn thực hiện bất kỳ quản trị nào, đó là khi tôi sẽ sử dụng hộp NAS độc lập.

Trong đợt nâng cấp phần cứng tiếp theo của tôi, tôi dự định nâng cấp phần cứng và sau đó cài đặt phiên bản FreeBSD hiện tại, có ZFS v13. V13 rất tuyệt vì tôi có một đĩa RAM được sao lưu bằng pin mà tôi có thể sử dụng cho nhật ký ZIL (điều này làm cho tiếng hét được ghi lại). Nó cũng hỗ trợ sử dụng SSD để tăng tốc máy chủ tệp (thông số kỹ thuật trên Máy chủ tệp Sun mới rất ngọt và họ lấy chúng từ hệ thống ZFS sử dụng SSD để giúp hệ thống hoạt động rất nhanh).

EDIT: (Không thể để lại ý kiến ​​nào). Tôi đã làm theo nhiều hướng dẫn tại http://www.ish.com.au/solutions/articles/freebsdzfs . Một thay đổi lớn tồn tại trong 7.X kể từ khi những hướng dẫn đó được viết là 7.2 xuất hiện và nếu bạn có trên 2 GB, bạn không cần phải thêm ba dòng sau vào /boot/loader.conf:

vm.kmem_size_max="1024M"
vm.kmem_size="1024M"  
vfs.zfs.arc_max="100M"

Các hướng dẫn cũng giải thích cách tạo gương và cách đưa hệ thống trở lại chế độ phục hồi (gắn kết với ZFS). Sau khi chơi với hướng dẫn của anh ấy một hoặc hai lần, sau đó tôi đã sử dụng Hướng dẫn quản trị ZFS từ Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf để hiểu rõ hơn về ZFS là gì. Để tạo kho dữ liệu của mình, tôi đã sử dụng một phiên bản sửa đổi của lệnh trên trang 91 để tạo nhóm ZFS. Đây là FreeBSD, tôi đã phải thực hiện một thay đổi nhỏ:

zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10

Trường hợp ad4-ad10 được tìm thấy bằng cách thực hiện dmesg | grep 'ata. * Master', đây là tên của các ổ đĩa cứng SATA trên hệ thống sẽ được sử dụng cho phân vùng dữ liệu lớn. Trên bo mạch chủ của tôi, ba cổng ata đầu tiên (ad0-3) trong đó có 4 cổng PATA và sau đó vì mỗi cổng SATA là một bản gốc, không có số cũ.

Để tạo hệ thống tập tin, tôi chỉ cần làm:

zfs create dozer/data
zfs set mountpoint=/data dozer/tank

Lệnh thứ hai là bắt buộc vì tôi đã tắt các điểm gắn kết mặc định cho các chia sẻ.


Bạn có tình cờ có ghi chú của tất cả mọi thứ bạn đã làm? Và bạn sẽ sẵn sàng để đăng chúng? :)
đau buồn

Bài đăng tuyệt vời trên FreeNAS + ZFS. Tôi đã tò mò về điều này bản thân mình. Cảm ơn thông tin của bạn!
osij2is

11

Giới thiệu: Cuối cùng tôi đã xây dựng hệ thống của mình, và đây là ghi chú của tôi, trong trường hợp nó giúp được bất kỳ ai khác.

Bàn thắng:

  • Xây dựng một hộp NAS gia đình cũng có thể tăng gấp đôi như kiểm soát nguồn và máy chủ web nội bộ của tôi.
  • Giữ chi phí dưới 1000 đô la

Thông số kỹ thuật:

  • Phải có ít nhất một terabyte dung lượng lưu trữ
  • Phải có dự phòng dữ liệu (RAID hoặc một cái gì đó tương tự)
  • Phải có thể thay thế máy chủ kiểm soát mã nguồn cũ hiện tại của tôi

Thiết kế:

  • FreeBSD 7.2 (cuối cùng sẽ được nâng cấp lên 8.0).
  • Hệ điều hành nằm trên ổ đĩa khởi động riêng, trong trường hợp này là một ổ đĩa IDE
  • Dữ liệu được lưu trữ trên sáu ổ đĩa SATA.

Chúng tôi sử dụng ZFS làm hệ thống tệp, vì nó đã nhận được những đánh giá thuận lợi như vậy. ZFS khá nhiều yêu cầu chúng tôi chạy HĐH 64 bit và thích nhiều bộ nhớ, vì vậy tôi nên nhận tối thiểu 4Gb

Phần cứng:

Phần mềm: FreeBSD 7.2 - 1 @ $ 0,00 http://www.freebsd.org/

Tổng chi phí: $ 874,81

Thiết lập phần cứng: Một bản dựng máy tính cơ bản, với ba vấn đề nhỏ.

  1. Trường hợp tôi mua có khe cắm cho 6 ổ cứng và hai khay 3,5. Tôi giả định rằng IDE có thể phù hợp với một trong 3,5 vịnh. Đây là một giả định tồi, và không có cách nào hợp lý để làm cho nó hoạt động. Tôi đã đi và mua một bộ chuyển đổi tại Fry's với giá ~ 17 đô la, và nó hoạt động tốt.

  2. Các cáp Sata tôi mua có các đầu nối 90 độ, rất đẹp, ngoại trừ sáu ổ đĩa, không có cách nào để thực hiện công việc. Việc cắm vào một dây cáp khiến phần không linh hoạt của đầu nối bị treo trên ổ cứng tiếp theo. Tôi đã phải đi đến Fry và bằng 5 cáp SATA thông thường. Đáng buồn thay, những cái tôi mua ở Newegg rất rẻ, không đáng để gửi lại.

  3. Vỏ máy hướng mặt sau của các ổ đĩa cứng sang bên cạnh vỏ và các dây cáp điện từ nguồn cung cấp có một đầu nối cứng bị kẹt ra khỏi mép của vỏ. Điều này không cho phép tôi trượt nắp bên vào vị trí. Tôi đã phải chơi xung quanh với nó một chút để làm cho nó hoạt động, và cuối cùng kết thúc với hai trong số các cáp nguồn mô-đun (chúng có bốn phích cắm SATA trên mỗi) xen kẽ giữa các ổ đĩa, để các ổ đĩa đầu tiên chạy bằng cáp 0, 2, và 4, và thứ hai cung cấp 1, 3 và 5. Điều này cho phép đủ linh hoạt để tôi có thể nén chúng ra khỏi đường.

Thiết lập hệ điều hành:

  1. Ghi các ISO FreeBSD 7.2 vào CD. Tôi có thể đã sử dụng một đĩa DVD, nhưng tôi không có bất kỳ lời nói dối nào.

  2. Ghi memtest86 + ( http://www.memtest.org/ ) vào đĩa CD.

  3. Cung cấp cho máy tính mới được xây dựng và đi vào bios để đảm bảo nó nhìn thấy tất cả 7 ổ đĩa và DVD-ROM. Nó đã làm. Đã thay đổi thứ tự khởi động để tạo CDROM trước.

  4. Đưa đĩa CD memtest86 + vào máy tính mới được xây dựng, khởi động lại và để nó chạy qua đêm. Đã qua mà không có lỗi.

  5. Đã cài đặt FreeBSD 7.2, nếu bạn không quen với điều này, tôi khuyên bạn nên đọc phần sau: http://www.freebsd.org/doc/en/books/handbook/install.html Công việc giải thích những việc cần làm tốt hơn tôi rất nhiều có thể. Dưới đây là các cài đặt cụ thể của tôi:

    • Đã cài đặt tiêu chuẩn
    • Đã sử dụng toàn bộ ổ đĩa IDE cho HĐH
      • sử dụng bố trí hệ thống tập tin mặc định
      • còn lại 6 ổ đĩa SATA
    • Nhà phát triển cài đặt mà không có X-Windows, vì hộp sẽ không đầu
    • Hệ thống không phải là Máy khách hoặc Máy chủ NFS
    • FTP và inetd bị vô hiệu hóa
    • Cho phép SSH
    • Không thêm gói nào (những gói này sẽ được thêm vào sau).
    • Đã thêm một người dùng
  6. Sau khi cài đặt và khởi động lại, tôi nhận thấy rằng chỉ có 4 trong số 6 ổ đĩa SATA được phát hiện. Tôi đã đi vào BIOS và Bên dưới Thiết bị ngoại vi tích hợp thay đổi Loại OnChip SATA thành AHCI và Cổng OnChip SATA 4/5 Loại thành "SATA" Cài đặt đã lưu và khởi động lại.

  7. Tại thời điểm này FreeBSD đã phát hiện tất cả sáu ổ đĩa là: ad4 ad6 ad8 ad10 ad12 ad12 ad14

  8. Nhận bản mới nhất từ ​​cvs bằng csup: csup -g -L 2 ổn định-supfile Tôi đã chỉnh sửa tệp để sử dụng máy chủ: cvsup11.us .BSD.org để lại tất cả các thông tin khác.

  9. Được xây dựng lại và cài đặt kernel và thế giới mới nhất như được mô tả ở đây: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Tùy chỉnh kernel của tôi (xem ZFSNAS). Tôi đã vô hiệu hóa một bộ thiết bị lớn, vì tôi chưa bao giờ có kế hoạch sử dụng SCSI, USB, PCMCIA, serial, Parallel, v.v. -pipe tạo thế giới xây dựng -j8

Thiết lập NAS:

  1. Tạo nhóm ZFS cho bộ lưu trữ của chúng tôi: zpool tạo lưu trữ raidz2 ad4 ad6 ad8 ad10 ad12 ad14 ad14

  2. Tạo hệ thống tập tin gia đình trên bộ lưu trữ mới được tạo:

    zfs create storage/home
    cp -rp /home/* storage/home
    rm -rf /home /usr/home
    zfs set mountpoint=/home storage/home
    
  3. chỉnh sửa /etc.rc/conf và thêm vào như sau:

    zfs_enable="YES"
    

    Điều này gắn kết các hệ thống tệp ZFS khi khởi động.

  4. Tạo thư mục gốc, samba và perforce

    zfs create storage/root
    cp -rp /root/* storage/root
    rm -rf /root 
    zfs set mountpoint=/root storage/root
    zfs create storage/fileshare
    zfs create storage/perforce
    

    Trừ khi bạn cần thêm hệ thống tệp trên nhóm của mình, bạn sẽ thực hiện được khá nhiều phần ZFS. Xem phần sau để biết thêm chi tiết: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf

Các cổng được cài đặt:

/usr/ports/shells/bash
    make install
/usr/ports/editors/vim
    make install
/usr/ports/net/samba33
    make
    make install
    // Use all defaults un-check cups.
/usr/ports/devel/perforce
    make
    make install PERFORCE_PORT=XXXX PERFORCE_USER=p4user PERFORCE_GROUP=p4
    rm -rf /usr/local/perforce
    cd /storage/perforce/
    mkdir root
    mkdir log
    chown p4user:p4user *
    cd /storage
    chown p4user:p4user perforce 

Edited /usr/local/etc/perforce.conf as follows:
    #
    # Perforce FreeBSD configuration file
    #
    #
    # $FreeBSD: ports/devel/perforce/files/perforce.conf.in,v 1.3 2005/01/18 15:43:36 lth Exp $

    #
    # Perforce ROOT
    #
    PERFORCE_ROOT="/storage/perforce/root"

    #
    # Perforce user (it is recommended to run p4d as a non-root user)
    #
    PERFORCE_USER="p4user"

    #
    # p4d/p4p port (default: 1666)
    #
    PERFORCE_PORT="XXXX"

    #
    # p4p cache directory
    #
    PERFORCE_PROXY_CACHE="/usr/local/perforce/cache"

    #
    # p4p target server (default: perforce:1666)
    #
    PERFORCE_PROXY_TARGET="perforce:1666"

    #
    # p4d options (see man p4d)
    #
    PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L /storage/perforce/logs/p4d.log"

    #
    # Uncomment this line to have the server started automatically
    #
    PERFORCE_START=yes

Người dùng đã thêm:

user1
user2

Các nhóm được tạo:

sambashare
    Added user1 and user2 as members

chgrp sambashare /storage/fileshare
chmod 775 /storage/fileshare
chmod g+s /storage/fileshare

Cấu hình Samba:

Samba configuration file:
#################
    [global]
       workgroup = USERLAN
       server string = ZFS NAS
       security = user
       hosts allow = 192.168.1. 127.
       log file = /usr/local/samba/var/log.%m
       max log size = 50
       passdb backend = tdbsam
       dns proxy = no

    [user1share]
       comment = user1 share
       path = /storage/fileshare
       valid users = user1 user2
       public = no
       writable = yes
       printable = no
       create mask = 0765
#################

pdbedit -a -u user1 
    # followed prompts
pdbedit -a -u user2 
    # followed prompts

Câu trả lời tuyệt vời! Upvote ... kiểm tra!
Mei

5
  • Có thể khởi động từ ZFS không? (Tôi có muốn không?)

Tôi thấy không có lý do tại sao bạn muốn, tôi nghĩ rằng hỗ trợ Ảnh chụp chỉ đủ trưởng thành trong OpenSolaris để bạn có thể chuyển về phiên bản cũ hơn và khởi động nó (nhưng thực ra đó chỉ là phỏng đoán hoang dã).

  • Làm thế nào dễ dàng để thêm một ổ đĩa?

Thêm như trong việc mở rộng một hồ bơi sọc? Chỉ cần thêm một ổ đĩa vào hồ bơi, đó là về nó. Hãy xem xét ý nghĩa của câu hỏi tiếp theo của bạn.

  • Làm thế nào tốt nó xử lý các ổ đĩa có kích thước khác nhau?

Bạn có thể sử dụng nó như một sọc và báo cho ZFS giữ n bản sao của tệp. Vì vậy, bạn có thể sử dụng toàn bộ dung lượng lưu trữ bạn có và vẫn có được sự dư thừa

  • Bạn có thể thêm các ổ đĩa mới một cách nhanh chóng (hoặc ít nhất là chỉ với một lần khởi động lại) không?

Thay thế các thiết bị trong nhóm lưu trữ Tôi đoán đây là giải pháp được đề xuất, cách dễ nhất để tìm hiểu xem cái này hoạt động tốt như thế nào trên FreeBSD có lẽ là dùng thử.

  • Tôi sẽ được phục vụ tốt hơn bởi một cái gì đó ra khỏi kệ?

Bạn đã xem FreeNAS (Lộ trình) 0,70 dường như sắp được phát hành và sẽ hỗ trợ ZFS.

Bạn sẽ tiết kiệm cho mình những rắc rối của tất cả các khung công tác và có được một GUI tương đối đẹp để sử dụng miễn phí với nó.


Tôi đang sử dụng FreeNAS 0.7RC1 và thật dễ dàng để thiết lập với ZFS.
Joseph

3

Tôi có máy chủ với FreeBSD + ZFS (trên 7.2-STABLE và 8.0-CURRENT), không phải trong sản xuất.

Khởi động từ ZFS được mô tả tại đây http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/

Thêm ổ đĩa nhanh chóng dễ dàng như gõ "zpool add mypool da7", ổ đĩa mới có thể sử dụng được ngay sau đó; bạn cũng có thể thêm toàn bộ các ổ đĩa có sọc, gương, raidz (cải tiến-5) hoặc raidz2 (cải tiến-6)

Các ổ đĩa có kích thước khác nhau có thể được đặt trong bể bơi nhưng không thể được sử dụng trong gương / sọc / đột kích (nếu tôi nhớ chính xác, chỉ có thể sử dụng không gian hdd nhỏ nhất)

(Mở) Solaris có hỗ trợ ZFS ngay lập tức



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.