Quay lại

Giảm kích thước của ổ đĩa EBS trong phiên bản EC2 Chuyên mục Devops    2024-09-18    1 Lượt xem    1 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Giảm kích thước của ổ đĩa EBS (Elastic Block Store) trong phiên bản EC2 là một quy trình khá phức tạp do AWS không hỗ trợ trực tiếp việc giảm dung lượng EBS. Thay vì giảm kích thước, người dùng thường phải tạo một snapshot từ ổ đĩa hiện tại, sau đó tạo một ổ đĩa mới với dung lượng nhỏ hơn và sao chép dữ liệu sang ổ đĩa mới. Quy trình này đòi hỏi sự chuẩn bị kỹ lưỡng để tránh mất dữ liệu, và thường bao gồm các bước như tạo snapshot, cấu hình lại hệ thống file, và cập nhật phiên bản EC2 để sử dụng ổ đĩa mới. Điều này giúp tối ưu hóa chi phí lưu trữ và sử dụng tài nguyên một cách hiệu quả hơn.

Và dưới đây là các bước mà chúng ta sẽ thực hiên:

  1. Snapshot the volume
  2. Create a new smaller EBS volume
  3. Attach the new volume
  4. Format the new volume
  5. Mount the new volume
  6. Copy data from old volume to the new volume
  7. Prepare the new volume
  8. Detach and unmount old volume

Tình huống

Giả sử chúng ta có:

  • Phiên bản tên là my-instance trong vùng ap-northeast-1a
  • Ổ đĩa EBS có dung lượng 100GB tên là old-volume
  • Chúng ta muốn giảm xuống còn 40GB và đặt tên là new-volume
  • Chúng ta sẽ cần tắt instance để tránh các lỗi không nhất quán.

Snapshot the volume

Trước khi chúng ta bắt đầu đề đảm bảo dữ liệu sẽ được nhất quán, và tránh mất mát dữ liệu của ổ đĩa Root chúng ta nên tạo ra một snapshot, bạn nào chưa biết cách tạo snapshot thì có thể hiểu về nó qua link EBS snapshot của mình trước đó.

Tạo một ổ đĩa EBS mới nhỏ hơn

  • Đảm bảo instance đã tắt
  • Đi tới Elastic Block Store Volumes
  • Nhấp vào Create Volume
  • Chọn cùng loại ổ đĩa giống với ổ đĩa cũ của bạn
  • Nhập kích thước mong muốn; Trong trường hợp này là 40.
  • Chọn vùng khả dụng; Ổ đĩa sẽ có sẵn cho phiên bản trong cùng vùng khả dụng, cụ thể là ap-northeast-1a.
  • Thêm thẻ với Key: Name và Value: new-volume.

Attach the new volume

  • Nhấp chuột phải vào ổ đĩa mới.
  • Nhấp vào Attach Volume.
  • Chọn tên phiên bản my-instance.
  • Nhấp vào Attach.
  • Khởi động phiên bản và đăng nhập vào SSH.
  • Liệt kê tất cả các ổ đĩa có sẵn bằng lệnh:
    • lsblk​
       
    •  Ổ đĩa mới sẽ nằm ở /dev/xvdb.

Format the new volume

  • Kiểm tra xem ổ đĩa có dữ liệu hay không bằng lệnh sudo file -s /dev/xvdb.
    •  sudo file -s /dev/xvdb
  • Nếu hiển thị /dev/xvdb: data, nghĩa là ổ đĩa empty. Chúng ta có thể định dạng ổ đĩa.
    • /dev/xvdB: data
  • Nếu hiển thị khác với kết quả trên, nghĩa là ổ đĩa có dữ liệu. KHÔNG được định dạng ổ đĩa nếu bạn thấy kết quả này.
  • Định dạng ổ đĩa bằng lệnh:
    • sudo mkfs -t ext4 /dev/xvdb

Mount the new volume

  • Tạo thư mục để gắn ổ đĩa bằng lệnh:
    • sudo mkdir /mnt/new-volume
  • Gắn ổ đĩa mới vào thư mục bằng lệnh:
    • sudo mount /dev/xvdf /mnt/new-volume
  • Kiểm tra ổ đĩa bằng lệnh:
    • df -h

Copy data from old volume to the new volume

  • Sử dụng rsync để sao chép từ ổ đĩa cũ sang ổ đĩa mới:
    • sudo rsync -axv / /mnt/new-volume/
  • Thư giãn và chờ cho đến khi hoàn thành.

Prepare new volume

  • Cài đặt grub trên ổ đĩa mới bằng lệnh
    • sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/xvdb
  • Tháo ổ đĩa mới
    •  sudo umount /mnt/new-volume
  • Kiểm tra UUID bằng lệnh
    • blkid
  • Sao chép UUID từ /dev/xvda1 (dán ở đâu đó để sao lưu UUID này); Đây là UUID cũ của bạn.
  • Sử dụng tune2fs để thay thế UUID (COPIED_UUID là chuỗi giá trị từ bước 4.)
    • sudo tune2fs -U COPIED_UUID /dev/xvdb
  • Kiểm tra system label từ ổ đĩa cũ bằng lệnh dưới Nó sẽ hiển thị chuỗi như cloudimg-rootfs.
    • sudo e2label /dev/xvda1
  • Thay nhãn của ổ đĩa mới bằng nhãn của ổ đĩa cũ với lệnh
    • sudo e2label /dev/xvdb cloudimg-rootfs

Detach old volume

  • Chúng ta có thể đăng xuất khỏi SSH bây giờ. Tháo ổ đĩa cũ
  • Dừng phiên bản my-instance.
  • Tháo old-volume.
  • Tháo new-volume.
  • Gắn new-volume vào /dev/sda1.
  • Khởi động phiên bản my-instance.

End

Sau khi hoàn thành tất cả các bước trên, chúng ta có thể kiểm tra phiên bản của mình bằng cách đăng nhập vào SSH.

Chúng ta có thể xóa old-volumesnapshot-old-volume nếu hệ thống hoạt động chính xác. Tôi thích giữ snapshot trong một tuần hoặc một tháng trước khi xóa nó.

Tham khảo tại : Link

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday