Làm cách nào để gắn phân vùng LVM của máy ảo trên máy chủ KVM?


11

Nếu tôi cố gắng làm như sau trên máy chủ KVM:

# kpartx -av /dev/VolGroup00/kvm101_img
add map kvm101_img1 : 0 208782 linear /dev/VolGroup00/kvm101_img 63
add map kvm101_img2 : 0 125612235 linear /dev/VolGroup00/kvm101_img 208845
# mount /dev/mapper/kvm101_img1 /mnt

sau đó tôi nhận được / khởi động phân vùng gắn kết. Nhưng tôi đang gặp lỗi nếu sau đó gõ:

# mount /dev/mapper/kvm101_img2 /mnt
mount: you must specify the filesystem type

Đây là một bố trí fdisk trên máy khách:

# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        7832    62806117+  8e  Linux LVM

Có thể tìm một phân vùng gốc trên máy khách và gắn kết nó trên hệ thống máy chủ?


Tôi cho rằng tài liệu tham khảo của bạn về kvm101_img2 là một lỗi đánh máy. Nó sẽ là _img1 thay vào đó, phải không?
joechip

_img1 gắn kết chính xác với phương thức trên, nhưng _img1 là phân vùng / boot, tương đương với / dev / hda1 trên máy khách. Vấn đề là tôi không thể mount _img2 có chứa / dev / hda2 Linux LVM. Bố cục phân vùng đó là mặc định cho trình cài đặt CentOS.
Evolver

Oh OK, tôi đã bị ném ra bởi tham chiếu đến KVM. Không có gì cụ thể về KVM về câu hỏi này, nó chỉ đơn giản là một cấu trúc LVM bên trong một câu hỏi khác.
joechip

Câu trả lời:


14

Có vẻ như cuối cùng tôi đã tìm ra cách để làm những việc tôi cần. Đây là những gì tôi đã làm:

# kpartx -av /dev/VolGroup00/kvm101_img
# vgscan

nếu Volgroup đặt tên giống hệt nhau trong hệ thống máy khách và máy chủ, thì bạn phải đổi tên khách Volgroup

# vgrename <uuid> VolGroupXX

uuid của Volgroup bạn có thể đăng ký vgdisplay. Vì vậy, mẹo là trong việc kích hoạt Volgroup khách:

# lvscan
# vgchange -ay VolGroupXX
# lvscan

Sau đó, nó dễ dàng được gắn kết:

# mount /dev/VolGroupXX/LogVol00 /mnt

Cuối cùng, quá trình lạc hậu là:

# umount /mnt
# vgchange -an VolGroupXX
# kpartx -dv /dev/VolGroup00/kvm101_img
# pvscan

Lệnh cuối cùng xóa bộ đệm LVM và loại bỏ âm lượng vật lý được tạo bởi kpartx khỏi LVM.


Bạn có thể phải chỉnh sửa fstab của khách để sử dụng VolgroupXX thay vì Volgroup00.
joechip

4

Tôi rất vui vì bạn đã tìm ra nó cho tình huống của bạn.

Trong trường hợp tổng quát hơn, ổ đĩa khách có thể có nhiều định dạng như qcow, qcow2, v.v., vì vậy bạn sẽ không thể làm việc trực tiếp với chúng. Trong trường hợp này, bạn có thể sử dụng một cái gì đó như trên máy chủ:

# modprobe nbd
# kvm-nbd -c /dev/nbd0 file.qcow2

Sau đó, bạn có thể truy cập / dev / nbd0 dưới dạng ổ khách thô. Để ngừng sử dụng thiết bị này, bạn nên chạy:

# nbd-client -d /dev/nbd0

Mặt khác, nếu ổ đĩa khách ở định dạng thô, bạn sẽ sử dụng losetup:

# losetup -f file.raw

Điều này sẽ tìm và sử dụng thiết bị vòng lặp có sẵn đầu tiên (ví dụ: / dev / loop0). Để ngừng sử dụng nó chạy:

# losetup -d /dev/loop0

Sau này, bạn sẽ có thể thực hiện thủ tục kpartx / vgscan / lvscan / mount mà bạn mô tả trong câu trả lời của mình.


2

bạn có thể làm điều đó bằng cách sử dụng cá khách - http://libguestfs.org/guestfish.1.html


Cảm ơn vì đã gợi ý, nhưng thật không may, tôi thậm chí không thể cài đặt cho khách cá một công cụ để gắn kết mọi thứ, chỉ cần LVM.
Evolver

1
cố gắng chạy qemu-img info /path/to/image. nếu những gì bạn nhận được trong hộp Loại không phải là "RAW" thì không có cách nào HĐH có thể gắn hình ảnh này làm phân vùng, bởi vì nó được định dạng dưới dạng đĩa ảo dành riêng cho qemu. Đây là những gì cá khách đề cập đến, nó không chỉ là một công cụ lắp đặt đơn giản
dyasny

1

Có thể dễ dàng hơn khi chỉ sử dụng guestfishtừ gói libguestfs sẽ xử lý tất cả các chi tiết gây phiền nhiễu cho bạn thay vì cố gắng thực hiện thủ công

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.