Ubuntu VM chỉ đọc hệ thống tập tin sửa lỗi?


9

Tôi sẽ cài đặt các công cụ VMWare trên máy ảo Ubuntu, nhưng tôi gặp phải vấn đề không thể tạo thư mục cdrom trong thư mục / mnt. Sau đó tôi đã kiểm tra xem liệu đó có phải là vấn đề về quyền hay không, nhưng tôi thậm chí không thể tạo một thư mục trong thư mục chính. Nó tiếp tục tuyên bố rằng nó là một hệ thống tập tin chỉ đọc. Tôi biết một chút về Linux và tôi chưa cảm thấy thoải mái với nó. Bât cư lơi khuyên nao cung se được đanh gia cao.

Thông tin được yêu cầu từ một bình luận:

username @ servername : ~ $ mount
/ dev / sda1 on / loại ext4 (rw, errors = remount-ro)
proc on / proc loại proc (rw)
none on / sysfs loại sys (rw, noexec, nosuid, nodev)
none trên / sys / fs / fuse / loại kết nối fusectl (rw)
none on / sys / kernel / debug type debugfs (rw)
none on / sys / kernel / security type securityfs (rw)
udev on / dev type tmpfs (rw, mode = 0755)
không có loại nào trên / dev / pts devpts (rw, noexec, nosuid, gid = 5, mode = 0620)
không có trên / dev / shm loại tmpfs (rw, nosuid, gậtv)
không có trên / var / run loại tmpfs (rw , nosuid, mode = 0755)
không có tmpfs trên / var / lock (rw, noexec, nosuid, gật đầu)
không có / lib / init / rw loại tmpfs (rw, nosuid, mode = 0755) binfmt_misc on / Proc / sys / fs / binfmt_misc loại binfmt_misc (rw, noexec, nosuid, gật đầu)

Để đầu ra gốc chắc chắn.

root @ server01: ~ # mount
/ dev / sda1 on / loại ext4 (rw, errors = remount-ro)
proc on / proc loại proc (rw)
none on / sys sysfs loại (rw, noexec, nosuid, nodev)
none trên / sys / fs / fuse / loại kết nối fusectl (rw)
none on / sys / kernel / debug type debugfs (rw)
none on / sys / kernel / security type securityfs (rw)
udev on / dev type tmpfs (rw, mode = 0755)
không có loại nào trên / dev / pts devpts (rw, noexec, nosuid, gid = 5, mode = 0620)
không có trên / dev / shm loại tmpfs (rw, nosuid, gậtv)
không có trên / var / run , nosuid, mode = 0755)
không có tmpfs trên / var / lock (rw, noexec, nosuid, gật đầu)
không có / lib / init / rw loại tmpfs (rw, nosuid, mode = 0755) binfmt_misc on / Proc / sys / fs / binfmt_misc loại binfmt_misc (rw, noexec, nosuid, gật đầu)

văn bản thay thế

văn bản thay thế


1
Bạn có thể vui lòng in đầu ra của lệnh "mount" không? (không cần thông số)
pgruetter

Thêm vào câu trả lời. Cảm ơn đã hỏi thông tin hữu ích.
David

Chỉ cần chắc chắn: "sudo mkdir / mnt / cdrom" không thành công, phải không?
Janne Pikkarainen

Điều làm tôi bối rối là nó nói rằng đó là một hệ thống tệp chỉ đọc. Đầu ra của lệnh trạng thái "rw" được đọc ghi hệ thống tập tin. Vì vậy, hệ thống tập tin nên được ok. Thư mục nào bạn đang cố gắng ghi vào? Bạn cũng có thể cung cấp đầu ra của "ls -la <the_folder>" không?
pgruetter

Tôi đã thêm một hình ảnh vào phía dưới, đó là hình ảnh của những gì tôi nhận được khi tôi thực hiện lệnh được yêu cầu. Hãy cho tôi biết nếu bạn cần tôi làm bất cứ điều gì khác. :)
David

Câu trả lời:


16

Mặc dù đây là một câu hỏi tương đối cũ, nhưng câu trả lời vẫn như vậy. Bạn có một máy ảo (chạy trên máy chủ vật lý) và một số loại lưu trữ (lưu trữ được chia sẻ - lưu trữ FC SAN, iSCSI, chia sẻ NFS - hoặc lưu trữ cục bộ).

Với ảo hóa, nhiều máy ảo cố gắng truy cập cùng một tài nguyên vật lý cùng một lúc. Do các giới hạn vật lý (số lượng thao tác đọc / ghi - IOPS; thông lượng; độ trễ) có thể có một vấn đề để đáp ứng tất cả các yêu cầu lưu trữ của tất cả các máy vật lý cùng một lúc. Điều thường xảy ra: bạn sẽ có thể thấy "SCSI thử lại" và các hoạt động SCSI không thành công trong các hệ điều hành của máy ảo của bạn. Nếu bạn gặp quá nhiều lỗi / thử lại trong một khoảng thời gian nhất định, kernel sẽ đặt các hệ thống tập tin được gắn kết chỉ đọc để tránh làm hỏng hệ thống tập tin.

Để cắt ngắn câu chuyện dài: Bộ nhớ vật lý của bạn không đủ "mạnh". Có quá nhiều quá trình (máy ảo) truy cập hệ thống lưu trữ cùng một lúc, máy ảo của bạn không nhận được phản hồi từ bộ lưu trữ đủ nhanh và hệ thống tệp chỉ ở chế độ đọc.

Không có quá nhiều thứ bạn có thể làm. Các giải pháp rõ ràng là lưu trữ tốt hơn / bổ sung. Bạn cũng có thể sửa đổi các tham số cho thời gian chờ SCSI trong nhân Linux. Chi tiết được mô tả, ví dụ, trong:

http://kb.vmware.com/'mservice/microsites/search.do?lingu=en_US&cmd=displayKC&externalId=1009465

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

Tuy nhiên, điều này sẽ chỉ "hoãn" các vấn đề của bạn, bởi vì kernel chỉ nhận được nhiều thời gian hơn trước khi hệ thống tập tin sẽ được đặt ở chế độ chỉ đọc. (Tức là bạn không giải quyết được nguyên nhân của vấn đề.)

Kinh nghiệm của tôi (vài năm với VMware) là vấn đề này chỉ tồn tại với các nhân Linux (chúng tôi đang sử dụng RHEL và SLES) chứ không phải với các máy chủ Windows. Ngoài ra, sự cố này xảy ra trên tất cả các loại lưu trữ - FC, iSCSI, lưu trữ cục bộ. Đối với chúng tôi, thành phần quan trọng nhất (và đắt tiền) trong cơ sở hạ tầng ảo của chúng tôi là lưu trữ. (Hiện chúng tôi đang sử dụng HP LeftHand với các kết nối iSCSI 1 Gbps và chưa gặp sự cố lưu trữ nào kể từ đó. Chúng tôi đã chọn LeftHand (trên các giải pháp FC truyền thống) cho khả năng mở rộng của nó.


Ồ Câu trả lời chính xác. Tôi hoàn toàn quên mất câu hỏi này. Tôi đã đánh dấu câu trả lời của bạn là câu trả lời được chấp nhận. Trung tâm dữ liệu mà tôi hiện đang làm việc (là đối tác lớn của VMWare) đã nâng cấp bộ nhớ của họ gần đây lên một chiếc Pod của Hitachi. Chúng tôi thực sự đang thêm một nhóm khác vào môi trường để giúp tải IOP vì chúng tôi bắt đầu gặp phải các vấn đề khác với IOP (nhấn mạnh trước rằng chúng tôi cần nâng cấp hoặc mở rộng tài nguyên SAN). Vì vậy, trong quá khứ, chúng tôi đã tăng tài nguyên SAN một lần nữa.
David

4

Một lời giải thích có khả năng là có một vấn đề về phần cứng (lỗi một phần đĩa) và hạt nhân đã nhắc lại hệ thống tập tin gốc là chỉ đọc ngay khi phát hiện ra sự cố, nhằm giảm thiểu sự cố. Một cách đáng tin cậy hơn để kiểm tra các tùy chọn gắn kết hiện tại là cat /proc/mounts( grep ' / ' /proc/mountsđối với hệ thống tập tin gốc, hãy bỏ qua một rootfs / …dòng là thành phần chính của quá trình khởi động). Bạn có thể sẽ thấy rằng rw,errors=remount-rođã thay đổi thành ro(các tùy chọn khác có thể được hiển thị ngoài ra).

Nhật ký kernel có thể chứa thông báo Remounting filesystem read-only, trước lỗi truy cập đĩa. Các nhật ký thường tồn tại /var/log/kern.log, tuy nhiên nếu đây là trên một hệ thống tập tin chỉ đọc thì thông báo sẽ không hiển thị ở đó, mặc dù các lỗi trước đó nên. Bạn cũng có thể thấy một vài lỗi kernel mới nhất bằng dmesglệnh.

Bên cạnh đó, trong Ubuntu, vị trí thông thường cho các điểm gắn kết (được sử dụng bởi giao diện máy tính để bàn) nằm dưới /media(ví dụ /media/cdrom0), mặc dù bạn có thể sử dụng /mnthoặc /mnt/cdromnếu bạn muốn.

¹ báo cáo từ . Nếu hệ thống tập tin gốc là chỉ đọc, không thể cập nhật. mount/etc/mtab/etc/mtab


Điều duy nhất về phần cứng xấu là đây là một máy ảo, do đó nó không thể là vấn đề phần cứng vì có hàng trăm máy ảo trên các máy chủ vật lý và tôi là người duy nhất gặp sự cố. Tôi sẽ kiểm tra các bản ghi kernel và cố gắng đặt một ảnh chụp màn hình của nó trong câu hỏi.
David

Nếu bạn có giới hạn kích thước trên đĩa cứng ảo và đã đầy, Ubuntu sẽ không thể ghi, như được hiển thị ở trên. Bạn có thể kiểm tra.
CarlF

@David: Nhật ký cho thấy Linux gặp sự cố về phần cứng, chỉ có phần cứng là ảo. Tôi thấy giả thuyết của CarlF rất hợp lý.
Gilles 'SO- ngừng trở nên xấu xa'

3

Điều gì đã xảy ra là, có một sự cố mất điện trong trung tâm dữ liệu gần đây. Kể từ đó, tôi đã không chạm vào máy chủ của mình. Khi trung tâm dữ liệu của chúng tôi mất điện, VSphere làm cho hệ thống tệp của Ubuntu chỉ đọc cho đến khi được khởi động lại. Tôi đã cố gắng khởi động lại nhưng tôi không muốn tất cả các giám sát phát điên. Tôi đã bịt miệng Nagios (dịch vụ giám sát) và mọi thứ đang hoạt động tốt khi tôi đã khởi động lại hệ thống. Cảm ơn tất cả các đầu vào. Nó được nhiều đánh giá cao.


1

Có thể rõ ràng, nhưng bạn có phải là người dùng "root" khi cố gắng làm điều này? / mnt được sở hữu bởi root và chỉ có thể ghi bởi root. Bạn cũng có thể kiểm tra xem bạn có lỗi khi khởi động không. Đầu ra của bạn ở trên nói rằng / (và do đó / mnt) chỉ nên được đọc lại nếu quá trình khởi động thấy lỗi. Bạn có thể thay đổi điều này (tức là kể lại là r / w) bằng lệnh mount, nhưng tôi sẽ không làm điều này trừ khi bạn chắc chắn rằng bất cứ điều gì gây ra lỗi đều không nghiêm trọng.


Tôi có thể đã không ở một gốc một cách tình cờ khi tôi làm điều đó, nhưng tôi nghĩ rằng đầu ra nó giống nhau. Đầu ra gốc chắc chắn nằm dưới đầu ra đầu tiên.
David
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.