Ubuntu VM แก้ไข“ ระบบไฟล์อ่านอย่างเดียว” หรือไม่


9

ฉันกำลังจะติดตั้งเครื่องมือ VMWare บนเครื่องเซิร์ฟเวอร์เสมือนของ Ubuntu แต่ฉันพบปัญหาในการไม่สามารถสร้างไดเรกทอรี cdrom ในไดเรกทอรี / mnt ฉันทดสอบเพื่อดูว่ามันเป็นเพียงปัญหาสิทธิ์ แต่ฉันไม่สามารถสร้างโฟลเดอร์ในโฮมไดเร็กตอรี่ได้ มันยังคงระบุว่ามันเป็นระบบไฟล์แบบอ่านอย่างเดียว ฉันรู้จักลินุกซ์เพียงเล็กน้อยและฉันก็ยังไม่คุ้นเคย คำแนะนำใด ๆ ที่จะได้รับการชื่นชมมาก

ข้อมูลที่ร้องขอจากความคิดเห็น:

ชื่อผู้ใช้ @ servername : ~ $ mount
/ dev / sda1 บน / ประเภท ext4 (rw, ข้อผิดพลาด = remount-ro)
proc บน / ประเภท proc proc (rw)
ไม่มีบน / sys ประเภท sysfs (rw, noexec, nosuid, nodev)
ไม่มีบน / sys / fs / ฟิวส์ / ประเภทการเชื่อมต่อ fusectl (rw)
ไม่มีบน / sys / เคอร์เนล / debug ประเภท debugfs (rw)
ไม่มีบน / sys / เคอร์เนล / ประเภทความปลอดภัย securityfs (rw)
udev บน / dev ประเภท tmpfs (rw, โหมด = 0755)
ไม่มีบน / dev / pts ประเภท devpts (rw, noexec, nosuid, gid = 5, โหมด = 0620)
none บน / dev / shm ประเภท tmpfs (rw, nosuid, nodev)
none บน / var / run ประเภท tmpfs (rw , nosuid, mode = 0755)
ไม่มีบน / var / lock ประเภท tmpfs (rw, noexec, nosuid, nodev)
ไม่มีบน / lib / init / rw พิมพ์ tmpfs (rw, nosuid, mode = 0755) binfmt_misc บน / proc / sys / fs / binfmt_misc ประเภท binfmt_misc (rw, noexec, nosuid, nodev)

เพื่อการส่งออกที่แน่นอน

root @ server01: ~ # mount
/ dev / sda1 บน / ประเภท ext4 (rw, ข้อผิดพลาด = remount-ro)
proc บน / ประเภท proc proc (rw)
ไม่มีใน / sys ประเภท sysfs (rw, noexec, nosuid, nodev)
ไม่มีบน / sys / fs / ฟิวส์ / ประเภทการเชื่อมต่อ fusectl (rw)
ไม่มีบน / sys / เคอร์เนล / debug ประเภท debugfs (rw)
ไม่มีบน / sys / เคอร์เนล / ประเภทความปลอดภัย securityfs (rw)
udev บน / dev ประเภท tmpfs (rw, โหมด = 0755)
ไม่มีบน / dev / pts ประเภท devpts (rw, noexec, nosuid, gid = 5, โหมด = 0620)
none บน / dev / shm ประเภท tmpfs (rw, nosuid, nodev)
none บน / var / run ประเภท tmpfs (rw , nosuid, mode = 0755)
ไม่มีบน / var / lock ประเภท tmpfs (rw, noexec, nosuid, nodev)
ไม่มีบน / lib / init / rw พิมพ์ tmpfs (rw, nosuid, mode = 0755) binfmt_misc บน / proc / sys / fs / binfmt_misc ประเภท binfmt_misc (rw, noexec, nosuid, nodev)

ข้อความแสดงแทน

ข้อความแสดงแทน


1
คุณช่วยพิมพ์ออกคำสั่ง "mount" ได้ไหม? (ไม่ต้องการพารามิเตอร์)
pgruetter

เพิ่มไปยังคำตอบ ขอบคุณที่สอบถามข้อมูลที่เป็นประโยชน์
David

เพื่อให้แน่ใจว่า: "sudo mkdir / mnt / cdrom" ล้มเหลวใช่ไหม?
Janne Pikkarainen

สิ่งที่ทำให้ฉันสับสนคือมันบอกว่ามันเป็นระบบไฟล์แบบอ่านอย่างเดียว เอาต์พุตของคำสั่งระบุ "rw" ซึ่งเป็นระบบไฟล์อ่านเขียน ดังนั้นระบบไฟล์ของตัวเองควรจะโอเค คุณกำลังพยายามเขียนโฟลเดอร์ใดอยู่ คุณสามารถให้ผลลัพธ์ของ "ls -la <the_folder>" ได้หรือไม่?
pgruetter

ฉันเพิ่มรูปภาพที่ด้านล่างซึ่งเป็นรูปภาพของสิ่งที่ฉันได้รับเมื่อฉันทำตามคำสั่งที่ร้องขอ แจ้งให้เราทราบหากคุณต้องการให้ฉันทำอย่างอื่น :)
David

คำตอบ:


16

แม้ว่านี่จะเป็นคำถามที่ค่อนข้างเก่า แต่คำตอบก็ยังเหมือนเดิม คุณมีเครื่องเสมือน (ใช้งานบนโฮสต์ที่มีอยู่จริง) และที่เก็บข้อมูลบางประเภท (ที่เก็บข้อมูลที่ใช้ร่วมกัน - FC SAN, ที่เก็บข้อมูล iSCSI, การแบ่งปัน NFS - หรือที่จัดเก็บในตัวเครื่อง)

ด้วย virtualisation เครื่องเสมือนจำนวนมากพยายามเข้าถึงทรัพยากรทางกายภาพเดียวกันในเวลาเดียวกัน เนื่องจากข้อ จำกัด ทางกายภาพ (จำนวนการดำเนินการอ่าน / เขียน - IOPS; ปริมาณงาน, เวลาแฝง) อาจมีปัญหาในการตอบสนองคำขอหน่วยเก็บข้อมูลทั้งหมดของเครื่องฟิสิคัลทั้งหมดในเวลาเดียวกัน สิ่งที่มักจะเกิดขึ้น: คุณจะเห็น "การลองใช้ SCSI" และการดำเนินการ SCSI ที่ล้มเหลวในระบบปฏิบัติการของเครื่องเสมือนของคุณ หากคุณได้รับข้อผิดพลาด / ลองใหม่มากเกินไปในช่วงระยะเวลาหนึ่งเคอร์เนลจะตั้งค่าระบบไฟล์ที่เมาท์เป็นแบบอ่านอย่างเดียวเพื่อป้องกันความเสียหายของระบบไฟล์

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

มีหลายสิ่งที่คุณทำได้ไม่มากนัก ทางออกที่ชัดเจนคือพื้นที่เก็บข้อมูลที่ดีขึ้น / เพิ่มเติม คุณยังสามารถแก้ไขพารามิเตอร์สำหรับการหมดเวลา SCSI ในเคอร์เนล Linux อธิบายรายละเอียดเช่นใน:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009465

http://www.cyberciti.biz/tips/vmware-esx-server-scsi-timeout-for-linux-guest.html

อย่างไรก็ตามนี่จะเป็นการ "เลื่อน" ปัญหาของคุณเท่านั้นเนื่องจากเคอร์เนลจะได้รับเวลามากขึ้นก่อนที่ระบบไฟล์จะถูกตั้งค่าเป็นแบบอ่านอย่างเดียวเท่านั้น (เช่นคุณไม่ได้แก้สาเหตุของปัญหา)

ประสบการณ์ของฉัน (หลายปีกับ VMware) คือปัญหานี้มีอยู่ในเมล็ด Linux เท่านั้น (เราใช้ RHEL และ SLES) และไม่ใช่กับเซิร์ฟเวอร์ Windows นอกจากนี้ปัญหานี้เกิดขึ้นกับที่เก็บข้อมูลทุกประเภทเช่น FC, iSCSI, ที่จัดเก็บในตัวเครื่อง สำหรับเราส่วนประกอบที่สำคัญที่สุด (และแพง) ในโครงสร้างพื้นฐานเสมือนจริงของเราคือการจัดเก็บข้อมูล (ตอนนี้เรากำลังใช้ HP LeftHand ที่มีการเชื่อมต่อ 1 Gbps iSCSI และไม่มีปัญหาการจัดเก็บใด ๆ นับตั้งแต่เราเลือก LeftHand (มากกว่าโซลูชัน FC แบบดั้งเดิม) สำหรับความสามารถในการขยาย


ว้าว! คำตอบที่ดี ฉันลืมคำถามนี้โดยสิ้นเชิง ฉันทำเครื่องหมายคำตอบของคุณเป็นคำตอบที่ยอมรับแล้ว ปัจจุบันดาต้าเซ็นเตอร์ที่ฉันทำงานด้วย (ซึ่งเป็นพันธมิตร VMWare ขนาดใหญ่) ได้อัปเกรดที่จัดเก็บข้อมูลของพวกเขาเป็น Hitachi Pod เรากำลังเพิ่มพ็อดอื่นลงในสภาพแวดล้อมเพื่อช่วยในการโหลด IOPs เนื่องจากเราเริ่มพบปัญหาเพิ่มเติมเกี่ยวกับ IOPs (ก่อนเน้นว่าเราจำเป็นต้องอัพเกรดหรือขยายทรัพยากร SAN) ดังนั้นในอดีตที่ผ่านมาเราได้เพิ่มทรัพยากร SAN ของเราอีกครั้ง
เดวิด

4

คำอธิบายที่น่าจะเป็นไปได้คือมีปัญหาฮาร์ดแวร์ (ดิสก์บางส่วนล้มเหลว) และเคอร์เนลที่ติดตั้งระบบไฟล์รูทใหม่เป็นแบบอ่านอย่างเดียวทันทีที่ตรวจพบปัญหาเพื่อลดปัญหา วิธีที่เชื่อถือได้มากขึ้นในการตรวจสอบตัวเลือกการเมานท์ปัจจุบันคือcat /proc/mounts( grep ' / ' /proc/mountsสำหรับระบบไฟล์รูทไม่ต้องสนใจrootfs / …บรรทัดที่เป็นสิ่งประดิษฐ์ของกระบวนการบูต) คุณจะพบว่าrw,errors=remount-roมีการเปลี่ยนแปลงro(ตัวเลือกอื่น ๆ อาจปรากฏขึ้นนอกเหนือจากนี้)

บันทึกเคอร์เนลอาจมีข้อความRemounting filesystem read-onlyนำหน้าด้วยข้อผิดพลาดการเข้าถึงดิสก์ ปกติแล้วไฟล์บันทึกจะทำงานอยู่/var/log/kern.logแต่หากนี่เป็นระบบไฟล์แบบอ่านอย่างเดียวข้อความจะไม่ปรากฏขึ้นที่นั่นแม้ว่าข้อผิดพลาดก่อนหน้านี้ควรจะเป็น คุณยังสามารถดูข้อผิดพลาดเคอร์เนลล่าสุดด้วยdmesgคำสั่ง

นอกจากนี้ภายใต้ Ubuntu สถานที่ทั่วไปสำหรับจุดเชื่อมต่อ (ใช้โดยส่วนต่อเดสก์ท็อป) อยู่ภายใต้/media(เช่น/media/cdrom0) แม้ว่าคุณจะสามารถใช้/mntหรือ/mnt/cdromหากคุณต้องการ

¹ รายงานจาก หากระบบไฟล์รูทเป็นแบบอ่านอย่างเดียวจะไม่สามารถอัพเดตได้ mount/etc/mtab/etc/mtab


สิ่งเดียวที่เกี่ยวกับฮาร์ดแวร์ที่ไม่ดีคือนี่คือเครื่องเสมือนดังนั้นจึงไม่สามารถเป็นปัญหาฮาร์ดแวร์ได้เนื่องจากมีเครื่องเสมือนหลายร้อยเครื่องบนโฮสต์จริงและของฉันเป็นเครื่องเดียวที่มีปัญหา ฉันจะตรวจสอบบันทึกของเคอร์เนลและลองใส่ภาพหน้าจอในคำถาม
David

หากคุณมีขีด จำกัด ขนาดบนฮาร์ดดิสก์เสมือนของคุณและเต็มแล้ว Ubuntu จะไม่สามารถเขียนได้ดังที่แสดงไว้ด้านบน คุณอาจตรวจสอบ
CarlF

@ David: บันทึกจะแสดงว่า Linux พบปัญหาฮาร์ดแวร์เฉพาะฮาร์ดแวร์เป็นเสมือน ฉันพบว่าสมมติฐานของ CarlF เป็นไปได้สูง
Gilles 'หยุดความชั่วร้าย'

3

สิ่งที่เกิดขึ้นคือเมื่อไม่นานมานี้มีไฟฟ้าขัดข้องในดาต้าเซ็นเตอร์ ตั้งแต่นั้นมาฉันไม่ได้แตะเซิร์ฟเวอร์เลย เมื่อศูนย์ข้อมูลของเราสูญเสียพลังงาน VSphere จะทำให้ระบบไฟล์ของ Ubuntu อ่านได้จนกว่าจะรีสตาร์ทเท่านั้น ฉันจะลองเริ่มต้นใหม่ แต่ฉันไม่ต้องการให้การตรวจสอบทั้งหมดเป็นไปอย่างบ้าคลั่ง ฉันเงียบ Nagios (บริการตรวจสอบ) และทุกอย่างทำงานได้ดีในขณะนี้ที่ฉันได้รีสตาร์ทระบบ ขอบคุณสำหรับอินพุตทั้งหมด มันเป็นที่นิยมมาก


1

อาจชัดเจน แต่คุณเป็นผู้ใช้ "รูท" เมื่อพยายามทำสิ่งนี้หรือไม่? / mnt เป็นเจ้าของโดย root และเขียนได้โดย root เท่านั้น คุณอาจตรวจสอบเพื่อดูว่าคุณมีข้อผิดพลาดในการบูต เอาต์พุตของคุณด้านบนบอกว่า / (และ / / จึง / mnt) ควรถูกเมาท์ใหม่ให้อ่านเฉพาะในกรณีที่กระบวนการบูตเห็นข้อผิดพลาด คุณสามารถเปลี่ยนสิ่งนี้ (เช่นการประกอบใหม่เป็น r / w) ด้วยคำสั่ง mount แต่ฉันจะไม่ทำเช่นนี้เว้นแต่คุณจะแน่ใจว่าสิ่งที่ทำให้เกิดข้อผิดพลาดนั้นไม่ร้ายแรง


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