Điểm:1

Có thể di chuyển giữa hai đĩa vật lý mà không có (nhiều) thời gian chết không?

lá cờ de

Tôi có một máy chủ với cơ sở dữ liệu cỡ trung bình trên một đĩa đang đầy. Không có LVM hoặc RAID hoặc bất cứ thứ gì tương tự đang hoạt động vào thời điểm này. Tôi đã cài đặt đĩa mới trong máy chủ.

Có thể di chuyển dữ liệu sang đĩa vật lý mới với thời gian chết tối thiểu hoặc không? Chúng tôi đã thực hiện kiểm tra tốc độ sao chép từ ổ đĩa cũ sang ổ đĩa mới và sẽ mất vài giờ để hoàn thành. Không hẳn nói là phá vỡ thỏa thuận, nhưng tôi muốn làm tốt hơn nếu có thể.

Tôi có một vài ý tưởng và tôi muốn biết tính khả thi của từng ý tưởng là gì.

  1. Di chuyển sang LVM. Nếu có thể di chuyển một phân vùng trần sang phân vùng LVM (phải không!?), thì thật đơn giản pvmove để chuyển sang đĩa mới mà không có bất kỳ thời gian chết nào. Tôi đang tự trách mình vì đã không sử dụng LVM vào thời điểm đó. :/

  2. Sử dụng dm-raid để phản chiếu từ đĩa hiện có sang đĩa mới, đợi đồng bộ hóa, sau đó phá vỡ cuộc đột kích và quăng đĩa cũ. Điều này chỉ yêu cầu đủ thời gian ngừng hoạt động để gắn lại hệ thống tệp từ thiết bị vật lý sang thiết bị ánh xạ thiết bị. "Vấn đề" ở đây là tôi sẽ có một lớp RAID mà tôi đã không sử dụng sau tất cả những gì đã nói và làm xong. Tôi cũng không đạt được tính linh hoạt của LVM khi sử dụng thiết lập này.

Một tùy chọn khác là thiết lập một máy chủ mới (hoặc thậm chí chỉ là một dịch vụ mới trên cùng một máy chủ) và sử dụng khả năng sao chép của cơ sở dữ liệu (trong trường hợp này là PostgreSQL), nhưng điều đó có vẻ như cần nhiều công việc hơn mức cần thiết.

Mat avatar
lá cờ cn
Mat
Thay thế cho việc sao chép sẽ là thiết lập các không gian bảng mới và di chuyển các đối tượng từ cũ sang mới. (Nhưng tôi không biết đủ về Postgres - có thể bị khóa rất nhiều.)
djdomi avatar
lá cờ za
cơ sở dữ liệu không nên được sao chép trực tiếp chừng nào chúng còn đang được sử dụng, tôi sẽ đề xuất thời gian ngừng hoạt động vào cuối tuần và bổ sung toàn bộ đĩa cứng và mở rộng nó sau đó. hãy nhớ rằng trong trường hợp không có đột kích và sao lưu, bạn thực sự ngớ ngẩn và có tác động lớn hơn như thế này
lá cờ de
@djdomi Tôi không đề xuất sao chép dữ liệu từ bên dưới cơ sở dữ liệu đang chạy. Tôi đặc biệt đang tìm kiếm các tùy chọn dưới hệ thống tập tin, tại đây. Thử nghiệm đọc/ghi ban đầu của tôi chỉ sử dụng `cp -r` để xem mất bao lâu.Chúng tôi đã cân nhắc sử dụng `rsync` hai lần (một lần trực tuyến, một lần sau đó), nhưng quyết định rằng tốc độ đọc của ổ đĩa cũ là nút cổ chai và chúng tôi cần đọc 100% cả nguồn và đích để thực hiện rsync "vi sai" trong thời gian ngừng hoạt động, vì vậy không có lợi ích thực tế.
lá cờ de
@Mat Việc di chuyển các đối tượng từ không gian bảng này sang không gian bảng khác có thể hoạt động, nhưng ứng dụng trên đầu db không hỗ trợ bất kỳ thứ gì như vậy và tôi không biết đủ về PostgreSQL để di chuyển dữ liệu đang sử dụng như vậy.
A.B avatar
lá cờ cl
A.B
Tôi sẽ đặt lại liên kết này mà tôi đã do dự khi đặt, vì nó cần rất nhiều công sức để thực hiện đúng: https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm -clone.html . báo trước: [Cập nhật siêu dữ liệu trên đĩa](https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-clone.html#updating-on-disk-metadata). Sẽ chỉ yêu cầu một thời gian ngừng hoạt động ngắn để chuyển đổi thiết bị cơ bản của FS. Với nhiều mỡ khuỷu tay hơn, mục tiêu có thể là LVM PV/LV đã được chuẩn bị trước. Sau đó, khi mọi thứ được di chuyển, thời gian ngừng hoạt động nhỏ thứ 2 sẽ được điều chỉnh lại.
lá cờ de
@ A.B `dm-clone` trông giống như những gì tôi đang tìm kiếm.Bạn có thể xác nhận rằng tôi sẽ (1) dừng dịch vụ/db của mình, chỉ đọc lại fs hiện tại, tạo bản sao dm từ thiết bị cũ->mới, gắn lại để mọi thứ trông giống như trước đây, sau đó (2) khởi động lại các dịch vụ và để quá trình hydrat hóa hoàn tất, sau đó (3) tại bất kỳ thời điểm nào sau khi quá trình hydrat hóa hoàn tất, tôi có thể xóa thiết bị cũ và fs dm-clone và chuyển sang chỉ sử dụng thiết bị mới không?
A.B avatar
lá cờ cl
A.B
bạn sẽ không kể lại fs chỉ đọc. Bạn sẽ chuẩn bị khối mới tại mục tiêu bằng một liên kết (sử dụng tính năng sao chép) tới thiết bị khối cũ và sau đó sẽ gắn trực tiếp fs vào vị trí mới. hydrat hóa có thể hoạt động trong quá trình hoạt động của cơ sở dữ liệu. Bạn có thể quản lý để mục tiêu sử dụng các khối chính xác của LV được chuẩn bị trước, để sau này bạn có sẵn các tính năng LVM
lá cờ de
@ A.B. Tôi đã hỏi về chế độ chỉ đọc vì tôi không muốn hệ thống tệp nguồn bị sửa đổi trong quá trình sao chép đang hoạt động. Trên thực tế, tôi cho rằng nó có thể hoàn toàn không được đếm, vì dm-clone dù sao cũng sẽ hoạt động ở cấp khối.
lá cờ de
Đối với mục tiêu LVM, tôi có thể chỉ định phần bù khối của mục tiêu để tránh ghi đè lên tiêu đề LVM trên thiết bị đích không? Điều đó nghe thật thú vị. Tuy nhiên, về mặt lý thuyết, tôi cũng có thể sao chép nguồn vào đích trong đó đích đã là một ổ đĩa logic LVM, vì bản thân thiết bị nguồn không chứa gì ngoài hệ thống tệp và ổ đĩa logic sẽ giống nhau.
A.B avatar
lá cờ cl
A.B
Có, điều đó đã được ngụ ý: nguồn chỉ đọc khi không có gì sử dụng nó. Để tránh lỗi thao tác, bạn có thể buộc thiết bị khối ở chế độ chỉ đọc với `blockdev --setro`. Và vâng, bạn có thể chọn chính LV làm phần đích của bản sao dm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.