เพิ่มประสิทธิภาพ ZFS ในความเป็นไปได้ของสภาพแวดล้อม RAM ต่ำหรือไม่


10

ขณะนี้ฉันกำลังตั้งค่าเซิร์ฟเวอร์ไฟล์และมาถึงจุดของการตั้งค่าไดรฟ์ข้อมูลจริง ระบบมี 4 ไดรฟ์ (หนึ่งดิสก์ OS, 3 ดิสก์ข้อมูล) ดิสก์ของระบบปฏิบัติการถูกจัดรูปแบบเป็น ext4 และจะไม่ถูกเพิ่มลงในพูล ZFS (ถ้าฉันเลือกที่จะเรียกใช้ ZFS) ข้อกังวลหลักของฉันคือความถูกต้องของข้อมูลและความเสี่ยงขั้นต่ำของการสูญหายของข้อมูล สำหรับ ZFS นี้ดูเหมือนจะเป็นตัวเลือกที่สมบูรณ์แบบเนื่องจากมีเวอร์ชั่นที่เสถียรสำหรับ Linux (ถูกต้อง?) และรองรับการทำสำเนาข้อมูลการรวมกำไรและการโจมตีซึ่งฮาร์ดไดรฟ์ไม่จำเป็นต้องมีขนาดเท่ากัน

แต่นี่คือปัญหาของฉัน เซิร์ฟเวอร์มี RAM เพียง 2GB และไม่สามารถอัปเกรดได้ในอนาคตอันใกล้และ ZFS ที่เข้าถึงได้จริงเพียง 1.5 จะสามารถเข้าถึงได้จริงหลังจากที่ฉันติดตั้งบริการอื่น ๆ ทั้งหมด ลูกค้าสูงสุดประมาณ 10 รายจะใช้งานในแต่ละครั้ง (มากกว่า 4 โดยเฉลี่ย) ต่ำเกินไปที่จะถือว่าปลอดภัยหรือไม่

จากสิ่งที่ฉันเข้าใจ ZFS สามารถล้มเหลวในสถานการณ์ RAM ต่ำและใช้พูลด้วย ฉันได้ยินความคิดเห็นที่ขัดแย้งกันว่าการแลกเปลี่ยนจะช่วยในการบรรเทาปัญหานี้หรือไม่ (ฉันมีไดรฟ์เฉพาะสำหรับการแลกเปลี่ยน 20 GB) มีใครเคยสูญเสียข้อมูลกับ ZFS ที่มี RAM น้อยและคุณได้เพิ่มประสิทธิภาพการป้องกันแบบใดบ้าง

จำไว้ว่าข้างต้นจะเป็นไปได้ไหมที่จะยังคงเรียกใช้ ZFS ได้แม้ว่าจะลดขนาดแอคและตัดมันลงเล็กน้อยหรือจะเสี่ยงเกินไปหรือไม่

รายละเอียดของระบบ: ระบบปฏิบัติการสว็อปไดรฟ์ 2GB RAM 20GB, Debian 7, การติดตั้งขั้นต่ำพร้อม FTP และ XBMC, DNLA (เพื่อให้ทราบถึงข้อกำหนดของ RAM) ใช้สำหรับเซิร์ฟเวอร์สตอเรจและมีเดียสตรีมมิ่งไปยังอุปกรณ์อื่น


1
ฉันไม่ใช่กูรู ZFS แต่ฉันรู้เรื่องระบบไฟล์โดยทั่วไปและฉันรู้ว่าที่หนึ่งที่คุณต้องระวัง - ครั้งใหญ่สำหรับการใช้หน่วยความจำคือการขจัดข้อมูลซ้ำซ้อน คุณไม่ได้ระบุว่าดิสก์ของคุณมีขนาดใหญ่เพียงใดและจะไม่มีข้อมูลอยู่ในนั้น นี่เป็นเรื่องใหญ่เนื่องจาก ZFS ต้องการเก็บตารางการค้นหาในหน่วยความจำ ฉันไม่สามารถพูดกับข้อกังวลอื่น ๆ ได้ แต่ฉันจะฆ่าความซ้ำซ้อนแน่นอน นอกจากนี้ btrfs ยังค่อนข้างสมบูรณ์สำหรับข้อมูลที่สำรองไว้ในตอนนี้ คุณเคยคิดไหม ตรวจสอบarstechnica.com/civis/viewtopic.php?f=16&t=1226135เพื่อดูข้อมูลเชิงลึกบางอย่าง (ซึ่งบางคนก็ไม่เห็นด้วยกับข้อสงสัย)
ravenpi

โอ้ใช่ฉันพลาดไปหมด พูลจะมีขนาด 3.35tb (ทั้งดิสก์และข้อมูลเนื่องจากจะสำรองข้อมูลลูกค้า 9 รายต่อวันดังนั้นฉันเดาว่ามันจะเติมข้อมูลอย่างรวดเร็วฉันเดาว่านั่นหมายความว่าไม่มีการทำซ้ำอย่างน้อยเนื่องจาก freebsd แนะนำ 5gb ram สำหรับทุกพื้นที่เก็บข้อมูล tb . ขอบคุณสำหรับการชี้ให้เห็น btrfs ฉันไม่ได้ตระหนักว่าตอนนี้มันมีเสถียรภาพฉันเดาว่าฉันจะมีลักษณะที่ดีในมัน
โทมัส E

"Stable" เป็นสิ่งที่ฉันอาจไม่รีบเรียก หนึ่งคือลังเลที่จะโทรใด ๆแม้กระทั่งครับ-sorta ค่อนข้างใหม่ระบบแฟ้ม "Stable". แต่มันไปถึงที่นั่น LWN (Linux Weekly News) เพิ่งสร้างซีรี่ส์ขึ้นมา มันดี - ลองดูที่นี่: lwn.net/Articles/576276
ravenpi

คำตอบ:


5

คุณระบุความถูกต้องของข้อมูลและความเสี่ยงขั้นต่ำของการสูญเสียข้อมูลเป็นประเด็นหลัก การรัน ZFS ด้วยหน่วยความจำ 2GiB เพียงอย่างเดียวนั้นมีความเสี่ยงและไม่แนะนำให้เลือก แรมน้อยเกินไปจะฆ่าประสิทธิภาพและเป็นสาเหตุของพูลที่ไม่สามารถนับได้จำนวนมากในอดีต โครงการ FreeNASระบุ 8GiB แรมเป็นอย่างน้อย

นอกจากนี้เนื่องจากความกังวลของคุณคือการสูญเสียข้อมูลคุณจะต้องใช้ ECC RAM เนื่องจากกล่องของคุณรองรับ RAM ได้แค่ 2GiB เท่านั้นฉันจึงคิดว่ามันเป็นกล่องที่เก่ามากซึ่งไม่เหมาะสำหรับ ZFS

เพื่อตอบคำถามของคุณ:

[…] และรองรับการทำสำเนาข้อมูล

ในทางปฏิบัติลืมเกี่ยวกับการทำซ้ำเมื่อคุณไม่มีอย่างน้อย 32GiB เช่นเดียวกับกฎง่ายๆ คุณอาจต้องการ RAM เพิ่มขึ้นอย่างมากทั้งนี้ขึ้นอยู่กับขนาดพูล อันดับที่สองทำคณิตศาสตร์หากการลดความซ้ำซ้อน + RAM มีราคาถูกกว่าดิสก์เพิ่มเติมจำนวนหนึ่ง บ่อยกว่าไม่ดิสก์มากขึ้นเป็นทางเลือกที่ถูกกว่า

ต่ำเกินไปที่จะถือว่าปลอดภัยหรือไม่

ใช่มันต่ำเกินไป

จากสิ่งที่ฉันเข้าใจ ZFS สามารถล้มเหลวในสถานการณ์ RAM ต่ำและใช้พูลด้วย

เป็นเรื่องจริงและหลายคนสูญเสียพูลเนื่องจาก RAM ต่ำ

ฉันได้ยินความคิดเห็นที่ขัดแย้งกันว่าการแลกเปลี่ยนจะช่วยในการบรรเทาปัญหานี้หรือไม่

ลืมเกี่ยวกับการแลกเปลี่ยนกล่อง ZFS ของคุณไม่ควรใช้การแลกเปลี่ยน

แก้ไข:หากคุณรู้สึกผจญภัยและไม่รังเกียจความเสี่ยงที่จะเกิดความตื่นตระหนกหรือการสูญเสียข้อมูลเป็นครั้งคราวโปรดอ่านคู่มือการปรับแต่ง ZFS และปรับการตั้งค่าที่กล่าวถึง นี่คือตัวอย่างการตั้งค่าสำหรับระบบ 768MiB ของหน่วยความจำ

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

มิฉะนั้นลงทุนร้อยดอลลาร์ในแถบหน่วยความจำและเพลิดเพลินกับระบบที่มั่นคงและมีประสิทธิภาพ


3
ฉันเห็น. เพื่อทำอย่างละเอียดใช่ฉันมี ecc ram และเครื่องคือ hp proliant microserver gen7 ซึ่งรองรับ ram ได้สูงสุด 8 / 16gb ขณะนี้ยังไม่สามารถทำการซื้อ ram ได้อีก ฉันทราบว่า freenas แนะนำ 8 gb อย่างไรก็ตามเอกสาร freebsd และ Solaris แนะนำอย่างน้อย 1 gb ซึ่งเป็นสาเหตุของคำถาม ฉันเดาว่าฉันควรติดกับ ext4 และ mirror ด้วยตนเองด้วย rsync และ dd ไปยังดิสก์ออฟไลน์อาจเป็นวิธีที่ปลอดภัยที่สุด
โทมัสอี

คุณช่วยอธิบายเพิ่มเติมได้ไหมว่าทำไม ZFS ไม่ควรใช้ SWAP?
CMCDragonkai

ไม่มีเหตุผลที่ใช้ ZFS โดยไม่ต้อง ECC อันตรายกว่าการใช้ฮาร์ดแวร์เดียวกันกับระบบไฟล์อื่น
อลิเซีย

5
เหตุใดชุมชน ZFS จึงแสดงความคิดเห็นเสมอกับคนหัวสูงที่หยิ่งยโส ไม่ใช่ทุกคนที่ต้องการหมวกข้อมูลที่เชื่อถือได้เพียงแค่ $ 100 เพื่อให้บริการตามข้อกำหนดการออกแบบที่ไร้สาระ ! ตัวอย่างเช่นฉันมีเซิร์ฟเวอร์ในบ้าน ARM ขนาดเล็กที่มี RAM ฮาร์ดไดรฟ์แบบใช้สาย 1GB และฮาร์ดไดรฟ์ USB ฉันต้องการให้ข้อมูลในนั้นปลอดภัยจากบิตเน่าโดยตรวจพบและแก้ไขและมีสแน็ปช็อตเพื่อการสำรองข้อมูล ไม่จำเป็นต้องมีความเร็ว และ btrfs นั้นเรียบง่ายโดยการออกแบบ ดังนั้น ZFS จะสมเหตุสมผลถ้าคนงี่เง่าบางคนไม่ได้ออกแบบมาให้แตกจากภาวะซึมเศร้าเมื่อใดก็ตามที่มี RAM น้อยกว่า 128 กิโลไบต์
Evi1M4chine

0

สำหรับระบบแรงดันหน่วยความจำสูง (linux) จำเป็นต้องอัพเกรดหน่วยความจำ ยังคงมีข้อผิดพลาด ( ลิงก์ ) ที่การสลับการล็อค IO (เคอร์เนลงานแขวน) ทำให้มันใช้ไม่ได้จนกว่าจะรีบูต ฉันเชื่อว่า vm.swappiness = X ไม่มีผลกับ zfs ดังนั้นการ จำกัด ส่วนโค้งที่จำนวนที่แน่นอนอาจช่วยได้เล็กน้อย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.