OmniOS / ZFS / Windows 7:“ บันทึกเป็น” จากภายในแอปพลิเคชันใช้เวลา 5 วินาทีสำหรับไฟล์ทุกขนาดผ่าน CIFS / SMB


9

สถานการณ์:

ปัญหาแปลก ๆ ต่อไปนี้เกิดขึ้นบนเซิร์ฟเวอร์ไฟล์เดียวที่ใช้ OmniOS r151018 (95eaa7e) ที่ให้บริการไฟล์ผ่าน SMB ไปยัง Windows และแขก OS X

บันทึกไฟล์บางไฟล์ (.docx, .xlsx, บางภาพ) ผ่านหน้าต่างโต้ตอบ "บันทึกเป็น ... " บน SMB แบ่งปันผลลัพธ์ในความล่าช้าประมาณ 3 ถึง 5 วินาทีซึ่งแอปพลิเคชันไม่ตอบสนองเลยหลังจากนั้น ไฟล์ถูกบันทึกตามปกติ

ปัญหาเกิดขึ้น "ข้ามคืน" โดยไม่ทำอะไรเลยกับเซิร์ฟเวอร์ แต่เป็นการยากที่จะระบุวันที่ที่แน่นอนเนื่องจากการร้องเรียนของผู้ใช้มาในระยะเวลาหนึ่งหลังจากเกิดเหตุการณ์ครั้งแรก หลังจากรีบูตเซิร์ฟเวอร์ vdev หนึ่งตัวของรูทพูลที่ทำมิรเรอร์ไม่พร้อมใช้งาน แต่การตรวจสอบอย่างใกล้ชิดไม่พบความผิดพลาดใด ๆ บนอุปกรณ์และถูกแนบไปยังพูล ปัญหายังคงมีอยู่

ข้อสังเกตบางอย่าง:

  • มันเกิดขึ้นกับไคลเอนต์ Windows 7 ทั้งหมด
  • มันเกิดขึ้นสำหรับทุกขนาดไฟล์
  • มันเกิดขึ้นกับการแชร์ทั้งหมดของเครื่องนี้โดยไม่คำนึงถึงสิทธิ์
  • มันเกิดขึ้นสำหรับที่เก็บข้อมูลที่เร็วกว่าที่นำเข้าบนโฮสต์ผ่าน iSCSI จากเซิร์ฟเวอร์อื่น
  • ความเร็วการทำสำเนาปกติคือ 110 MB / วินาทีผ่านทาง GBit Ethernet
  • ข้อมูลและรูทพูลดูเหมือนจะไม่เป็นไร
  • มันไม่ได้เกิดขึ้นกับไฟล์เซิร์ฟเวอร์อื่น ๆ
  • มันจะไม่เกิดขึ้นเมื่อไฟล์ถูกบันทึกไว้ในเครื่องแล้วคัดลอกไปยัง explorer
  • มันไม่ได้เกิดขึ้นใน OS X (สามารถทดสอบได้เฉพาะกับ OpenOffice)
  • dmesgแสดงให้เห็นว่าNOTICE: bge0: interrupt: flags 0x0 - not updated?มีค่าต่าง ๆ หลายค่า แต่นี่เป็นกรณีก่อนและไม่เป็นอันตราย

อุดมคติ / แผนเพิ่มเติม:

เนื่องจากไม่มีข้อความแสดงข้อผิดพลาดที่ชัดเจนฉันอาจต้องทำการทดลองและค้นหาข้อผิดพลาดเพื่อหาสาเหตุ บางสิ่งที่ฉันจะพิจารณา ( ผลลัพธ์เป็นตัวเอียง ):

  • เปลี่ยนการ์ดเครือข่าย Broadcom ด้วยการ์ด Intel => ไม่ได้สร้างความแตกต่าง
  • แทนที่รูทพูลด้วย SATA SSD (ปัจจุบันหน่วยความจำ SLC USB sticks ซึ่งทำงานได้ดีนานกว่า 3 ปี) => ไม่ได้สร้างความแตกต่าง
  • ตรวจสอบเครือข่ายระหว่าง (ฮาร์ดแวร์โดยเชื่อมต่อกับเซิร์ฟเวอร์โดยตรง)
  • การดักจับปริมาณการใช้งานด้วย WireShark: ยากถ้าคุณไม่รู้ว่าคุณกำลังมองหาอะไร
  • เปลี่ยนกลับเป็นสภาพแวดล้อมการบูต OmniOS / เวอร์ชันก่อนหน้าเพื่อแยกแยะความขัดแย้งของซอฟต์แวร์=> ไม่ได้สร้างความแตกต่าง
  • ย้อนกลับการอัพเดต Windows / Office เพื่อแยกแยะข้อบกพร่อง
  • ลบไฟล์ที่มี:(โคลอน) ในชื่อไฟล์ออกจากสแน็ปช็อตคำแนะนำโดย txgsync บนเธรด reddit ที่สร้างโดย ewwhite => ไม่ได้สร้างความแตกต่าง

    ฉันเห็นสิ่งที่คล้ายกับสิ่งนี้เมื่อเปิดใช้งานคุณลักษณะ "เวอร์ชันก่อนหน้า" ของ Windows ด้วยสแนปชอตอัตโนมัติที่มีอักขระ ":" เพียงแค่ถ่ายภาพนี้ด้วยลมหายใจ แต่สิ่งนี้อาจคุ้มค่ากับการดูเนื่องจากไม่อนุญาตให้ใช้อักขระ ":" ในชื่อไฟล์ Windows

  • การตรวจสอบการเข้าถึงไฟล์: ตามที่แนะนำโดย shodanshok ฉันใช้DTraceและสคริปต์นี้เพื่อตรวจสอบการเข้าถึงไฟล์ ฉันใช้มันในขณะที่บันทึกไฟล์ที่เปิดของ alread ลบเอาต์พุตและข้อมูลส่วนบุคคลที่ไม่เกี่ยวข้องและผลลัพธ์จะอยู่ที่ประมาณสามไฟล์:

    CPU ID       FUNCTION:NAME
    1   18753    fop_open:entry Open: Workbook
    0   18181 fop_create:return Create: temp_1
    0   18753    fop_open:entry Open: temp_1
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_1
    0   18888  fop_rename:entry Rename: Workbook -> temp_2
    0   18888  fop_rename:entry Rename: temp_1 -> Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_2
    0   18892  fop_remove:entry Remove: temp_2
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    

    โพรซีเดอร์เดียวกันบนเซิร์ฟเวอร์อื่นซึ่งปัญหาไม่เกิดขึ้นให้ผลลัพธ์ที่คล้ายกัน:

    CPU ID       FUNCTION:NAME
    1   25182 fop_create:return Create: temp_1
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25889  fop_rename:entry Rename: Workbook -> temp_2
    1   25889  fop_rename:entry Rename: temp_1 -> Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_2
    1   25893  fop_remove:entry Remove: temp_2
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    

    ฉันยังเพิ่มการประทับเวลา ( walltimestamp) ในสคริปต์ แต่ในทั้งสองกรณีการดำเนินการไฟล์ทั้งหมดจะเกิดขึ้นในวินาทีเดียวกัน => ไม่ได้สร้างความแตกต่าง

  • นำเข้าดิสก์บนโฮสต์อื่นเพื่อตรวจสอบว่าการแตกแฟรกเมนต์พูลหรือดิสก์ผิดปกติ=> ไม่ได้สร้างความแตกต่าง
  • ย้ายข้อมูลและรูทพูลไปยังเครื่องที่เหมือนกันเพื่อตัดปัญหาการเดินสายเคเบิลเมนบอร์ด ฯลฯ=> ปัญหายังคงมีอยู่ดังนั้นต้องเป็นรูทพูล (ซอฟต์แวร์) หรือฮาร์ดแวร์เฉพาะที่เข้ากันไม่ได้กับซอฟต์แวร์ (หรือเข้ากันไม่ได้ในทันที .. )

คุณช่วยแนะนำสิ่งอื่นที่เป็นสาเหตุของพฤติกรรมนี้ได้หรือไม่? หรือคุณพบบางสิ่งที่คล้ายกัน? เนื่องจากฉันไม่พบสิ่งที่เป็นประโยชน์ทางออนไลน์ฉันสงสัยว่าอาจเป็นปัญหาฮาร์ดแวร์แปลก ๆ (เพราะ จำกัด อยู่ที่เครื่องเดียว) หรือมีปัญหากับ Windows / Office



@ ขาวขอบคุณสำหรับการสร้างกระทู้! ข้อเสนอแนะนั้นน่าสนใจจริง ๆ เพราะสแนปชอตบางส่วนในหุ้นมีไฟล์ Perl ที่คัดลอกมาจากเครื่องยูนิกซ์ แต่การลบออกและสแน็ปช็อตก็ไม่เปลี่ยนพฤติกรรม
121391

เมื่อบันทึกไฟล์ในการแชร์ Office จะมีพฤติกรรมที่แปลกประหลาด: มันจะสร้างไฟล์เปล่าก่อนจากนั้นจึงลบมันในที่สุดมันก็จะสร้างขึ้นใหม่และบันทึกไฟล์ด้วยข้อมูลของคุณ หากหนึ่งในขั้นตอนเหล่านี้ใช้เวลานานกว่าที่คาดหน้าต่าง "บันทึกเป็น" จะถูกตรึงอย่างมีประสิทธิภาพ ระบบของคุณมีสิ่งอำนวยความสะดวกบางอย่างเพื่อติดตามการเข้าถึงระดับไฟล์หรือไม่? คุณสามารถดีบักเซสชัน SMB ได้หรือไม่ คุณใช้สิ่งที่คล้ายกับเซิร์ฟเวอร์รวมของ SMB ของ Samba หรือ ZFS หรือไม่
shodanshok

@shodanshok ขอบคุณสำหรับคำแนะนำโปรดดูคำถามที่อัปเดตของฉันสำหรับผลลัพธ์ ฉันไม่รู้ว่าทำไมคำสั่งซื้อถึงปิดไปเล็กน้อย แต่การประทับเวลาดูเหมือนจะคล้ายกันกับทั้งสองเครื่อง สำหรับคำถามของคุณเป็นเซิร์ฟเวอร์รวม Solaris / illumos CIFS ซึ่งปัจจุบันใช้ SMB 2.1 IIRC
user121391

บางทีโปรแกรมป้องกันไวรัสที่ไคลเอนต์ Windows 7 อาจเป็นสาเหตุของการหยุดทำงานหรือไม่
Janne Pikkarainen

คำตอบ:


4

สารละลาย:

ปัญหามีผลกับ OmniOS r151018 เท่านั้นไม่ใช่รุ่นก่อนหน้า กระทู้ในรายชื่อผู้รับจดหมาย omnios-discuss นี้เกี่ยวกับปัญหาของฉันอย่างแน่นอนอ้างจาก Geoff:

ฉันเห็นกระทู้ที่คล้ายกันกับฟอรัม Nexenta ดูเหมือนจะมีปัญหากับ opslock ฉันปิดการใช้งาน opslock และตอนนี้เราทำได้ดี

svccfg -s network/smb/server setprop smbd/oplock_enable=false

ไม่แน่ใจว่าทำไมสิ่งนี้ถึงไม่กัดคนมากกว่านี้

ดังนั้นbiteCount++;ฉันเดา ปัญหาได้รับการแก้ไขโดยใช้การแก้ไขและทำการรีบูตอย่างรวดเร็ว

บทเรียนสำหรับอนาคต:ก่อนที่จะพยายามแก้ไขปัญหาใด ๆ เพียงใช้การค้นหาขั้นสูงในรายชื่อผู้รับจดหมายอย่างเป็นทางการเพราะปัญหาของคุณอาจเกิดขึ้นกับเครื่องของผู้อื่นแล้ว นอกจากนี้ให้หมุน VM แบบเร็วเพื่อแยกแยะซอฟต์แวร์อัพเดตหรือข้อผิดพลาดการกำหนดค่าใด ๆ


ฉันไปถึงที่นั่นได้อย่างไร:

หลังจากการทดสอบที่แตกต่างกันหลายอย่างตามที่เห็นในคำถามที่อัปเดตแล้วฉัน จำกัด ให้แคบลงเหลือทั้งปัญหาซอฟต์แวร์หรือความขัดแย้งของฮาร์ดแวร์ / ไดรเวอร์ในฮาร์ดแวร์เฉพาะ ในการแยกกฎข้อที่สองออกฉันติดตั้งเครื่องเสมือน OmniOS สดสองเครื่องคือ r151018 และ r151016 บนโฮสต์อื่นและกำหนดค่าด้วยการใช้ SMB พื้นฐานร่วมกันในแต่ละเครื่อง

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

เมื่อมองหาวิธีการอัปเดตแพคเกจแบบหนึ่งต่อหนึ่งฉันมองไปที่รายชื่อผู้รับจดหมายและค้นหาsmbจาก 6 เดือนที่ผ่านมาที่การแก้ปัญหาที่ถูกต้อง / ปัญหาเดียวกันโผล่ขึ้นมาตั้งแต่เดือนพฤษภาคม

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