मैं ZFS का उपयोग करके एक घर FreeBSD फ़ाइल सर्वर का निर्माण करता हूं।
यह 3GB रैम के साथ AMD X2 3200+ है। इसमें पीसीआई एक्सप्रेस गिग-ई है। बूट ड्राइव एक पुराना 400GB है और मेरे पास 4 750GB सीगेट ड्राइव है (एक अंतर फर्मवेयर संस्करण के साथ, बस मामले में)।
ZFS से बूटिंग अच्छा होता (यह आसान स्थापित करता है), लेकिन मैंने ZFSOnRoot निर्देशों का उपयोग ZFS के साथ रूट / OS ड्राइव को सेटअप करने के लिए किया था (यदि सभी विभाजन ZFS हैं, तो बूट पर इसे करने की आवश्यकता नहीं है। UFS फाइलसिस्टम की जांच करने के लिए)। कारण यह है कि आप यह चाहते हैं कि तब आप अपने सभी विभाजन (/ var, / usr, / tmp, आदि) को अलग-अलग विकल्पों के साथ आवश्यकतानुसार सेट कर सकते हैं (जैसे / usr / obj के लिए noatime और async, जो कर्नेल को गति देगा। संकलित), लेकिन वे सभी एक आम पूल से स्थान साझा करेंगे। फिर आप एक डेटा ड्राइव सेटअप कर सकते हैं और प्रत्येक उपयोगकर्ता को अपने स्वयं के (अलग-अलग उद्धरण और सेटिंग्स के साथ) विभाजन दे सकते हैं। फिर आप स्नैपशॉट ले सकते हैं (जो 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
प्रदर्शन के लिहाज से, फ़ाइलों की प्रतिलिपि बनाना वास्तविक तेज़ है। एक बात जो मैं नोट करूंगा कि मैं FreeBSD AMD64 सिस्टम पर ZFS का उपयोग कर रहा हूं जिसमें 3-4GB है और यह अच्छी तरह से काम कर रहा है, लेकिन मेरे पढ़ने से, मैं इसे i386 सिस्टम पर चलाने के बारे में चिंतित होऊंगा जिसमें 2GB था या याददाश्त कम होना।
मैं मदरबोर्ड पर SATA पोर्ट से बाहर भागा, इसलिए मैंने कोई नई ड्राइव जोड़ने की कोशिश नहीं की। प्रारंभिक सेटअप सरल था, RAIDZ बनाने के लिए एक कमांड और फिर बनाने के लिए कमांड / होम, जिसे सेकंड (IIRC) में स्वरूपित किया गया था। मैं अभी भी ZFS (v6) के पुराने संस्करण का उपयोग कर रहा हूं, इसलिए इसकी कुछ सीमाएँ हैं (इसमें समान आकार की ड्राइव की आवश्यकता नहीं है, लेकिन ड्रोबो के विपरीत, यदि आपके पास 3 750GB ड्राइव और 1TB ड्राइव है, तो अंतिम परिणाम जैसा कि आप 4 750GB ड्राइव था) होगा।
RAIDZ के साथ ZFS का उपयोग करने वाले बड़े कारणों में से एक एंड-टू-एंड चेकसम था। सर्न ने एक पेपर प्रकाशित किया जो एक परीक्षण का परीक्षण करता था जहां उन्होंने कुछ हफ्तों की अवधि में आर / डब्ल्यू परीक्षण चलाने के दौरान 200 + बिना पढ़ी त्रुटियों को पाया (रिटेल ड्राइव में ईसीसी को प्रत्येक 12 टीबी पढ़ने के बाद एक बार विफलता होने की उम्मीद है)। मुझे अपने सर्वर का डेटा सही होना चाहिए। पावर आउटेज (किसी ने स्पेस हीटर को प्लग करके यूपीएस को ओवरलोड किया था) के कारण मेरा हार्ड क्रैश हो गया था, लेकिन जब सिस्टम वापस आ सकता है, तो ZFS जल्दी वापस आ गया, बिना मानक fsck मुद्दों के।
मुझे यह पसंद है, क्योंकि मैं प्रिंट सर्वर प्राप्त करने के लिए सांबा में सीयूपीएस जोड़ सकता था। मैंने एक DNS कैश जोड़ा और मैं जैसा चाहूं अन्य सॉफ़्टवेयर जोड़ सकता हूं (मैं बैंडविड्थ उपयोग को मापने के लिए अपने घर पर डेस्कटॉप पर एसएनएमपी मॉनिटरिंग जोड़ने के बारे में सोच रहा हूं)। मैंने सिस्टम पर जो खर्च किया, उसके लिए मुझे यकीन है कि मैं एक सस्ता NAS बॉक्स खरीद सकता था, लेकिन तब मेरे पास खेलने के लिए 64-बिट स्थानीय यूनिक्स बॉक्स नहीं होगा। अगर आपको FreeBSD पसंद है तो मैं कहूंगा कि इसके साथ जाना चाहिए। यदि आप लिनक्स पसंद करते हैं, तो मैं लिनक्स समाधान की सलाह दूंगा। यदि आप कोई प्रशासन नहीं करना चाहते हैं, तो यह है कि मैं अकेले NAS बॉक्स के स्टैंड के लिए जाऊंगा।
हार्डवेयर अपग्रेड के मेरे अगले दौर में, मैं हार्डवेयर को अपग्रेड करने और फिर FreeBSD के वर्तमान संस्करण को स्थापित करने की योजना बना रहा हूं, जिसमें ZFS v13 है। V13 शांत है क्योंकि मेरे पास एक बैटरी समर्थित रैम डिस्क है जिसे मैं ZIL लॉग के लिए उपयोग कर सकता हूं (यह लिखते हैं चीख)। इसमें फ़ाइल सर्वर को गति देने के लिए SSD का उपयोग करने के लिए समर्थन भी है (नए Sun File Servers पर चश्मा मधुर हैं, और वे उन्हें ZFS प्रणाली से प्राप्त करते हैं जो SSD का उपयोग करके सिस्टम को बहुत तेज बनाते हैं)।
संपादित करें: (अभी तक टिप्पणी नहीं छोड़ सकते)। मैंने http://www.ish.com.au/solutions/articles/freebsdzfs पर निर्देशों का बहुत पालन किया । उन निर्देशों को लिखे जाने के बाद से 7.X में मौजूद एक बड़ा बदलाव यह था कि 7.2 बाहर आया था और यदि आपके पास 2+ जीबी है, तो आपको /boot/loader.conf में निम्नलिखित तीन लाइनें नहीं मिलनी चाहिए:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
निर्देशों में यह भी बताया गया है कि दर्पण कैसे बनाया जाए और सिस्टम को रिकवरी मोड में कैसे रखा जाए (ZFS के साथ माउंट)। एक या दो बार उनके निर्देशों के साथ खेलने के बाद, मैंने तब ZFS एडमिन मैनुअल का उपयोग Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf से किया, ताकि बेहतर समझा जा सके कि ZFS क्या था। अपना डेटा स्टोर बनाने के लिए, मैंने ZFS पूल बनाने के लिए पृष्ठ 91 पर कमांड के संशोधित संस्करण का उपयोग किया। यह FreeBSD होने के नाते, मुझे एक छोटा सा बदलाव करना पड़ा:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
जहाँ ad4-ad10 जहाँ dmesg | grep 'ata। * Master' करके पाया जाता है, यह सिस्टम पर SATA हार्ड ड्राइव का नाम है जो कि बड़े डेटा विभाजन के लिए उपयोग किया जाएगा। मेरे मदरबोर्ड पर, पहले तीन अता पोर्ट (ad0-3) जहां 4 PATA पोर्ट हैं और फिर क्योंकि प्रत्येक SATA पोर्ट एक मास्टर है, कोई पुरानी संख्या नहीं है।
फ़ाइल सिस्टम बनाने के लिए, मैंने अभी किया:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
दूसरे आदेश की आवश्यकता है क्योंकि मैंने शेयरों के लिए डिफ़ॉल्ट माउंटपॉइंट को बंद कर दिया है।