Truy cập đọc / ghi cho các hệ thống tập tin passthrough (9p) với libvirt / qemu?


14

Gần đây tôi đã bắt đầu thử nghiệm với sự hỗ trợ cho các hệ thống tập tin thông qua trong các phiên bản gần đây của KVM / QEMU / libvirt. Làm cho các hệ thống tập tin có sẵn để truy cập đọc đã "hoạt động", nhưng tôi hơi bối rối về cách truy cập ghi được cho là hoạt động. Sau khi gắn hệ thống tập tin trong máy khách:

# mount -t 9p -o trans=virtio /fs/data /mnt

Tôi có thể sửa đổi một tập tin hiện có nếu nó có chế độ o+w:

# cd /mnt/work
# ls -l foo
-rw-rw-rw-. 1 root root 17 Dec 20 11:16 foo
# cat foo
this is line one
# echo this is line two >> foo
# cat foo
this is line one
this is line two

Nhưng bất kể quyền của thư mục là gì, tôi không thể tạo tệp hoặc thư mục mới:

# ls -ld /mnt/work
drwxrwxrwx. 2 root root 4096 Dec 20 11:16 /mnt/work
# cd /mnt/work
# touch bar
touch: setting times of `bar': No such file or directory
# mkdir bar
# mkdir: cannot create directory `bar': Operation not permitted

Tài liệu tôi có thể tìm thấy (ví dụ: cái này ) không giải quyết rõ ràng vấn đề này. Tôi hy vọng ai đó ở Serverfault có thể giúp tôi thiết lập hệ thống tập tin thông qua cho phép tôi cấp quyền truy cập ghi cho người dùng trong máy khách vào hệ thống tệp máy chủ.


Bạn có chắc chắn đã gắn hệ thống tập tin đọc / ghi? Bạn có thể tạo tập tin? Bạn đang tạo tệp dưới dạng root hoặc người dùng thông thường (vâng tôi thấy # của bạn nhưng bạn có thể đã viết bằng tay)?
Janus Troelsen

Bạn đã quản lý để giải quyết điều này? Tôi gặp vấn đề tương tự là không thể ghi vào đường dẫn fs của máy chủ được gắn trong máy khách.
Shoan

Tôi không bao giờ thực sự có bất kỳ tiến bộ về điều này. Nó là một ứng dụng thích hợp đối với tôi ... Nói chung tôi không chạy khách KVM ở những nơi truy cập vào hệ thống tệp cục bộ sẽ hữu ích. Tôi đã từng chạy VirtualBox trên máy tính để bàn của mình, nơi thỉnh thoảng tôi thực sự muốn tính năng này.
larsks

Bạn có thấy bất kỳ cảnh báo selinux nào trên máy chủ vật lý hoặc trên máy khách không?
c4f4t0r

Điều này có thể giúp? linux-kvm.org/page/9p_virtio
Danila Ladner

Câu trả lời:


4

Điều này đối với tôi giống như một vấn đề cấp phép trên máy chủ:

Theo mặc định, quy trình qemu / kvm được bắt đầu với tư cách là người dùng không có đặc quyền (libvirt-qemu trong Debian Wheezy). Vì vậy, chỉ những tệp mà người dùng VM có thể truy cập (hoặc có thể ghi) mới có thể truy cập được (có thể ghi).

Bạn có thể thử thiết lập quyền sở hữu thư mục cho người dùng qemu được chạy dưới dạng (xem user = và group = in /etc/libvirt/qemu.conf)

Có lẽ điều này giúp trong trường hợp của bạn?


Tôi đã thử rằng trong trường hợp của tôi, giống như câu hỏi này , nhưng tôi không thể làm cho nó hoạt động được, ngay cả khi tắt ứng dụng.
chéo

0

khi khởi động màn hình qemu của bạn trong shell, nên thêm "sudo" làm tiền tố. Tôi đã làm nó để giải quyết vấn đề quyền khi tạo tập tin hoặc thư mục. môi trường của tôi là ubfox16.04 + qemu-2.12.

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.