Thực tiễn tốt nhất cho các máy chủ Linux cung cấp mỏng (trên VMware)


9

Tôi có một thiết lập khoảng 20 máy Linux, mỗi máy có khoảng 30-150 gigabyte dữ liệu khách hàng. Có lẽ kích thước của dữ liệu sẽ tăng nhanh hơn đáng kể trên một số máy so với các máy khác. Đây là những máy ảo trên cụm VMware vSphere. Các hình ảnh đĩa được lưu trữ trên một hệ thống SAN.

Tôi đang cố gắng tìm một giải pháp sử dụng không gian đĩa một cách tiết kiệm, trong khi vẫn cho phép phát triển dễ dàng các máy riêng lẻ.

Về lý thuyết, tôi sẽ chỉ tạo các đĩa lớn cho mỗi máy và sử dụng việc cung cấp mỏng. Mỗi đĩa sẽ phát triển khi cần thiết. Tuy nhiên, có vẻ như một hệ thống tập tin ext3 500 GB chỉ với 50 GB dữ liệu và số lượng ghi khá thấp vẫn dễ dàng phát triển hình ảnh đĩa thành ví dụ. 250 GB theo thời gian. Hoặc có lẽ tôi đang làm gì đó sai ở đây? (Tôi đã rất ngạc nhiên khi tôi tìm thấy rất ít về chủ đề này với Google. BTW, thậm chí không có thẻ cung cấp mỏng trên serverfault.com.)

Hiện tại tôi đang lên kế hoạch tạo các đĩa lớn, được cung cấp mỏng - nhưng với khối lượng LVM nhỏ trên chúng. Ví dụ: dung lượng 100 GB trên đĩa 500 GB. Bằng cách đó tôi có thể dễ dàng tăng khối lượng LVM và kích thước hệ thống tập tin khi cần, thậm chí trực tuyến.

Bây giờ cho câu hỏi thực tế:

Có cách nào tốt hơn để làm điều này? (nghĩa là, để tăng kích thước dữ liệu khi cần mà không có thời gian chết.)

Các giải pháp có thể bao gồm:

  • Sử dụng một hệ thống tập tin thân thiện cung cấp mỏng, cố gắng chiếm giữ các điểm giống nhau nhiều lần, do đó không làm tăng kích thước hình ảnh.

  • Tìm một phương pháp dễ dàng để lấy lại không gian trống trên phân vùng (làm mỏng lại?)

  • Thứ gì khác?

Một câu hỏi phần thưởng: Nếu tôi đi với kế hoạch hiện tại của mình, bạn có khuyên bạn nên tạo phân vùng trên các đĩa ( pvcreate /dev/sdX1vs pvcreate /dev/sdX) không? Tôi nghĩ rằng nó chống lại các quy ước sử dụng các đĩa thô không có phân vùng, nhưng nó sẽ giúp việc phát triển các đĩa trở nên dễ dàng hơn một chút, nếu điều đó là cần thiết. Tất cả chỉ là vấn đề của hương vị, phải không?

Câu trả lời:


7

Nếu tôi hiểu việc cung cấp mỏng một cách chính xác thì nó thực sự có thể gây ra vấn đề nếu bạn không theo dõi chặt chẽ sự phát triển của hệ thống tệp VMFS và cho phép VMDK của bạn lấp đầy khối lượng VMFS của bạn. Bạn đã thấy trong thử nghiệm của mình rằng các đĩa được cung cấp mỏng có xu hướng phát triển để lấp đầy không gian có sẵn của chúng một cách nhanh chóng và chúng không thể lấy lại không gian có thể trống trong HĐH.

Tùy chọn khác là tạo các tệp VMDK có kích thước đủ để xử lý mức sử dụng hiện tại của bạn và tăng đột biến dự kiến ​​và chỉ cần thêm nhiều tệp VMDK khi mức độ sử dụng dữ liệu ứng dụng của bạn tăng lên. Các tệp VMDK mới có thể được thêm trực tiếp vào VM, bạn chỉ cần quét lại (echo "- - -"> / sys / class / scsi_host / host? / Scan). Bạn có thể phân vùng đĩa mới, thêm nó vào LVM của bạn và mở rộng hệ thống tập tin tất cả trực tiếp. Bằng cách này, bạn luôn nhận thức được có bao nhiêu không gian được phân bổ cho mỗi VM và bạn không thể vô tình chạy VMFS của mình ngoài không gian từ bên trong một khách.

Theo như phân vùng hay không nếu đĩa chỉ được LVM sử dụng, tôi luôn phân vùng. Phân vùng đĩa sẽ ngăn mọi cảnh báo về các bảng phân vùng không có thật xuất hiện khi máy khởi động và làm rõ rằng đĩa được phân bổ. Đó là một chút voodoo nhưng tôi cũng đảm bảo bắt đầu phân vùng ở 64 để giúp đảm bảo phân vùng và hệ thống tập tin được liên kết khối với bộ lưu trữ bên dưới. Thật khó để phát hiện và phân loại vì bạn thường không có thứ gì để dễ dàng so sánh nhưng nếu hệ thống tệp hệ điều hành không được liên kết chính xác với bộ lưu trữ bên dưới thì bạn có thể cần thêm IOPS cho các yêu cầu dịch vụ vượt qua ranh giới trên lưu trữ cơ bản.


1
Cảm ơn ý tưởng về việc thêm các tệp vmdk mới (thay vì chỉ phát triển các tệp hiện có).
tuomassalo

3

Gợi ý tốt nhất tôi có thể nghĩ đến là tạo một thiết lập LVM với khối lượng vật lý, nhóm âm lượng và khối lượng logic, sau đó gắn các khối logic đó làm hệ thống tệp VM của bạn thông qua iSCSI .

Điều này sẽ cho phép bạn thay đổi kích thước âm lượng hợp lý và sau đó tất cả những gì bạn cần làm sau đó là khởi động lại phần mềm iscsi daemon và máy ảo của bạn và kiểm tra xem nó có các tham số kích thước mới và sau đó thay đổi kích thước hệ thống tập tin của khách để phù hợp.

Việc phân vùng sẽ hoạt động như với một hdd tiêu chuẩn, vì đó là cách LV sẽ xuất hiện với máy khách ảo.

Chỉnh sửa: đừng bận tâm điều này, tôi có ấn tượng sai về việc bạn đang chạy vmware trong linux, không phải linux trong vmware.



1

Đề xuất khác nhau: thiết lập một máy chủ tệp sẽ chứa tất cả userdata của bạn.

Máy chủ tệp đó tất nhiên phải được quản lý bằng LVM cho mục đích quản lý năng lực trực tuyến của bạn.

Nếu bạn muốn, bạn có thể tạo một ha-setup (drbd + heartbeat) với một bản sao của máy chủ tệp của bạn trong SAN và một bản sao thứ hai bên ngoài hoặc giống nhau. (đối với hoang tưởng)

Vì các máy khách của bạn dựa trên linux, bạn có thể sử dụng NFS được cho là nhanh hơn Samba. FileServer sẽ cho phép bạn chiến lược sao lưu tập trung cũng như giám sát sử dụng lưu trữ tập trung. Và về câu hỏi cung cấp mỏng của bạn:

Tạo thiết lập LVM của bạn như bạn dự định (trong ví dụ LV 100gb của bạn trên PV 500gb, chỉ cần thay đổi số phù hợp với tổng dung lượng mà máy ảo của bạn cần). Mở rộng LV này khi cần, như bạn dự định thực hiện trong từng VM riêng biệt. Nhưng chỉ cần thực hiện ONCE trên máy chủ của bạn. Mỗi khi VM giảm mức sử dụng bộ nhớ, dung lượng đó sẽ có sẵn cho tất cả các VM của bạn ;-)

Sử dụng hạn ngạch trên máy chủ tệp của bạn nếu cần hoặc muốn để ngăn một VM lấp đầy máy chủ tệp của bạn.


1

Bạn có thể mở rộng âm lượng mà không cần tắt máy ảo bằng cách sử dụng nó không? Tôi thường làm điều này, nhưng tôi không biết thiết lập lưu trữ của bạn như thế nào hoặc VMware có thể làm phức tạp mọi thứ như thế nào. Nếu bạn có thể, những gì tôi sẽ làm là

1) Đừng cung cấp mỏng. Làm cho mỗi khối lượng kích thước bạn nghĩ rằng bạn cần. 2) Không sử dụng phân vùng. Làm cho mỗi hệ thống tập tin khối lượng riêng của nó. 3) Theo dõi sự tăng trưởng của hệ thống tập tin để bạn có thể thay đổi kích thước khối lượng một cách chủ động.

Khi đến lúc phải tăng một khối lượng

1) Trên SAN của bạn hoặc trong VMware, hãy làm bất cứ điều gì bạn cần để mở rộng âm lượng. 2) Trong linux, chạy echo 1 > /sys/block/EXAMPLE/device/rescan, trong đó VÍ DỤ là tên thiết bị dưới / sys / block /. 3) Trong linux, chạy resize2fs /dev/EXAMPLE, trong đó EXAMPLE là tên thiết bị dưới / dev.

Cách tiếp cận này đang làm việc tốt cho tôi. Tôi đã xem xét phương pháp của bạn với việc cung cấp mỏng và LVM, và tôi nghĩ nó cũng sẽ hoạt động tốt.

Nếu bạn quyết định đi theo tuyến LVM, tôi khuyên bạn không nên phân vùng đĩa. Như bạn đã nói, không có bảng phân vùng giúp phát triển đĩa ảo dễ dàng hơn. Không có bảng phân vùng, bạn chỉ có thể chạy pvresize và linux sẽ nhận ra rằng khối lượng vật lý đã tăng lên. Với bảng phân vùng, bạn phải ngắt kết nối bất kỳ hệ thống tệp nào, xóa bảng partiton, tạo lại bảng phân vùng, sau đó chạy pvresize. Đó là công việc nhiều hơn, và nó đòi hỏi thời gian chết.

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.