Không đủ dung lượng đĩa '/' trong ví dụ AWS


28

Tôi đang chạy phiên bản Ubuntu 11.04 cho Máy chủ Web của mình trên đám mây AWS, bây giờ tôi nhận được không có không gian đĩa trong / phân vùng máy chủ của tôi. df -ah nói điều này

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Bây giờ tôi đã thử những thứ này để có thêm không gian trên / phân vùng

  • Dọn dẹp tất cả các tệp Nhật ký cho Apache.
  • Đã xóa tất cả các tệp không cần thiết khỏi máy chủ.
  • Trang chủ thư mục Dọn dẹp.

Nhưng tôi vẫn không có đủ không gian. Loại Instance này là m1.lund với 8GB EBS. Bây giờ tôi nhận được tôi có đủ dung lượng đĩa trong / dev / xvdb .

Có cách nào tôi có thể phân bổ một số không gian đĩa cho / từ / dev / xvdb hoặc bất kỳ cách nào khác. Vui lòng gợi ý cho tôi giải pháp khả thi cho việc này. Có thể sử dụng cùng phân vùng / dev / xvdb với một phiên bản khác.


1
Cập nhật 2017: Amazon cho phép thay đổi kích thước ổ đĩa của bạn (ngay cả ổ đĩa khởi động) ngay bây giờ! xem câu trả lời SO của tôi ở đây: stackoverflow.com/a/42791031/7022062
Dmitry Shevkoplyas

Câu trả lời:


26

Câu trả lời là gấp đôi.

Giải pháp thay thế: sử dụng / dev / xvdb (/ mnt) cho dữ liệu tạm thời

Đây được gọi là lưu trữ phù du của phiên bản Amazon EC2 của bạn và các đặc điểm của nó khác rất nhiều so với lưu trữ Amazon EBS liên tục được sử dụng ở nơi khác. Cụ thể, bộ lưu trữ phù du này sẽ bị mất theo chu kỳ dừng / bắt đầuthường có thể biến mất , vì vậy bạn chắc chắn không muốn đặt bất cứ thứ gì có giá trị lâu dài ở đó, tức là chỉ đặt dữ liệu tạm thời ở đó bạn có thể đủ khả năng để mất hoặc xây dựng lại dễ dàng , như một tệp hoán đổi hoặc dữ liệu tạm thời được sử dụng trong quá trình tính toán. Tất nhiên, bạn có thể lưu trữ các chỉ mục lớn ở đó chẳng hạn, nhưng phải chuẩn bị để xây dựng lại các chỉ mục này sau khi lưu trữ bị xóa vì bất kỳ lý do gì (khởi động lại, lỗi phần cứng, ...).

Giải pháp: thay đổi kích thước / dev / xvda1 (/) để đạt được dung lượng mong muốn

Đây được gọi là Bộ lưu trữ thiết bị gốc của phiên bản EC2 được hỗ trợ bởi Amazon EBS của bạn , tạo điều kiện cho Amazon EBS có tính linh hoạt và độ bền, đặc biệt là dữ liệu đặt ở đó là các trường hợp thất bại hợp lý và an toàn; bạn có thể tăng tính linh hoạt và độ bền hơn nữa bằng cách chụp nhanh các khối EBS thường xuyên, được lưu trữ trên Amazon S3 , với độ bền 99.999999999% nổi tiếng.

Tính năng chụp nhanh này cho phép bạn giải quyết vấn đề của mình lần lượt, trong trường hợp bạn có thể thay thế bộ lưu trữ gốc 8GB EBS hiện tại (/ dev / xvda1) bằng một hoặc nhiều hơn bạn muốn. Quá trình này được phác thảo trong bài viết xuất sắc của Eric Hammond Thay đổi kích thước đĩa gốc trên bản chạy EBS Boot EC2 :

Miễn là bạn ổn với một chút thời gian trên phiên bản EC2 (vài phút), có thể thay đổi âm lượng EBS gốc bằng một bản sao lớn hơn, mà không cần phải bắt đầu một phiên bản mới.

Nếu bạn chuẩn bị đúng các bước anh ấy mô tả (tôi đặc biệt khuyên bạn nên kiểm tra chúng bằng ví dụ EC2 trước tiên để làm quen với quy trình hoặc tự động hóa nó thông qua một tập lệnh được điều chỉnh ngay cả), bạn sẽ có thể hoàn thành quy trình với một vài phút ngừng hoạt động chỉ thực sự.

Hầu hết các bước được phác thảo cũng có thể được thực hiện thông qua Bảng điều khiển quản lý AWS , điều này tránh việc xử lý các Công cụ API của Amazon EC2 ; điều này sôi xuống:

  • dừng (không chấm dứt!) thể hiện EC2
  • tách âm lượng EBS khỏi phiên bản đã dừng
  • tạo ảnh chụp nhanh của âm lượng EBS tách rời
  • tạo một khối EBS mới (lớn hơn) từ ảnh chụp nhanh đã tạo
  • đính kèm âm lượng EBS mới vào phiên bản EC2 ( Quan trọng ! Nếu đây là thiết bị gốc của bạn, hãy chắc chắn rằng nó đặt tên chính xác là thiết bị gốc của phiên bản như đã đề cập, ví dụ: (/ dev / sda1) hoặc (/ dev / xdva1) nếu không, nó sẽ được đính kèm dưới dạng một thiết bị khối chứ không phải thiết bị gốc và bạn sẽ không thể khởi động thể hiện vì sẽ không có thiết bị gốc nào được liệt kê cho ví dụ.)
  • SSH vào phiên bản đang chạy và xác nhận mọi thứ theo thứ tự thông qua df -ah
    • trong trường hợp hệ thống của bạn không tự động thay đổi kích thước hệ thống tệp, bạn sẽ cần thực hiện việc này theo cách thủ công như được giải thích trong bài viết của Eric

Chúc may mắn!


Thay thế

Với tính linh hoạt và dễ sử dụng của các khối EBS này, một tùy chọn bổ sung sẽ là gắn thêm các khối EBS vào ví dụ của bạn và di chuyển các khu vực quan tâm có thể phân tách rõ ràng ở đó.

Ví dụ: chúng tôi đang sử dụng một vài ứng dụng Java khá nặng, mỗi ứng dụng tiêu tốn 1-2 GB cho mỗi phiên bản; để dễ dàng nâng cấp các phiên bản và thường có thể di chuyển các ứng dụng này sang các phiên bản khác nhau theo ý của tôi, tôi đã đặt chúng trên các khối EBS chuyên dụng, gắn chúng vào một thể hiện và liên kết chúng với vị trí mong muốn, ví dụ như thường /var/lib/<app>/<version>/usr/local/<app>/<version>.

Với phương pháp này, chúng tôi hiện đang chạy các phiên bản EC2 với bộ lưu trữ thiết bị gốc vẫn ở kích thước mặc định là 8GB (giống như của bạn), nhưng đôi khi cũng có tới 8 ổ EBS với các kích cỡ khác nhau (1-15GB).

Mặc dù vậy, bạn cần lưu ý các vấn đề về hiệu suất mạng tiềm ẩn, trong trường hợp tất cả các khối EBS này đang sử dụng cùng một mạng LAN cho I / O của chúng, điều này có thể mang lại hiệu suất tăng tương ứng, hoặc bão hòa mạng của bạn trong các trường hợp cực đoan - vì vậy, thông thường điều này phụ thuộc về trường hợp sử dụng và khối lượng công việc trong tầm tay.


Tôi đang sử dụng / dev / xvdb để giữ cho cơ sở dữ liệu của tôi có kích thước gần 16GB, Một quy trình nền đang chạy để cập nhật. Vì vậy, những gì nên được lưu trữ vĩnh viễn tốt nhất cho cơ sở dữ liệu này. Tôi nên đi cho Amazon RDS hoặc Amazon DynamoDB. đề nghị của bạn là gì Tôi đang chạy máy chủ PHP trong trường hợp này.
Sumant

2
@Sumant: Điều đó không tốt, vì vậy bạn đã làm chính xác những gì nguy hiểm, cụ thể là đặt dữ liệu vào một đĩa mà về cơ bản có thể biến mất bất cứ lúc nào (thường thì không, hãy đặt nó như vậy)? Tôi hy vọng tôi không có ong gây hiểu lầm trong vấn đề này - hãy cẩn thận khi giảm nhẹ này để tránh mất dữ liệu trong quá trình (bạn làm có sao lưu cơ sở dữ liệu không phân biệt, phải không?)!
Steffen Opel

@Sumant: Liên quan đến câu hỏi của bạn - Bạn không cần phải thay đổi kiến ​​trúc ứng dụng (hoặc DB cho vấn đề đó) để khắc phục vấn đề lưu trữ, chỉ cần thay đổi kích thước đĩa gốc của bạn hoặc đính kèm thêm khối lượng EBS như đề xuất. Tuy nhiên, nếu bạn cũng muốn cải thiện và tách rời tầng DB của mình, đó là một điều tốt về nguyên tắc với sự phát triển trong tương lai (nhưng đi kèm với chi phí tương ứng từ đầu) và giả sử bạn hiện đang chạy MySQL, thì Amazon RDS sẽ là sự lựa chọn hoàn hảo và thuận tiện. Amazon DynamoDB yêu cầu một kiến ​​trúc ứng dụng hoàn chỉnh mới và chỉ áp dụng cho các trường hợp sử dụng cụ thể.
Steffen Opel

1
@Sumant: Mặc dù vậy, hãy lưu ý rằng việc di chuyển DB của bạn sang phiên bản RDS m1.small thực sự có thể thể hiện hiệu suất chậm hơn so với MySQL hiện tại của bạn trên EC2, đang chạy m1.lund với các lợi ích hiệu năng CPU và I / O tương ứng - cho dù điều này có áp dụng, phụ thuộc vào khối lượng công việc DB hiện tại của bạn. Tất nhiên, bạn cũng có thể sử dụng các phiên bản RDS lớn hơn để khắc phục điều này, nhưng chi phí của bạn sẽ tăng theo.
Steffen Opel

1

Yep một cách đơn giản để fstab nó và sau đó gắn kết nó để nói / var / www / html / files2 /

sau đó mkdir / var / www / html / files2 / website rồi ln -s -d / var / www / html / website / var / www / html / files2 / website


sử dụng UUID để gắn kết phân vùng bằng lệnh blkids và fdisk nói '/ dev / vxds /' để tạo phân vùng. Sử dụng lệnh nửa đêm để di chuyển các tệp có F6 từ thư mục này sang thư mục khác, đảm bảo bạn chọn đúng thư mục theo vị trí gắn kết oh và tất nhiên bạn sẽ cần 'mount -a' sau khi thêm vào fstab
Daniel Chay

0

Hôm nay tôi đã xảy ra vấn đề tương tự, khi bạn kết thúc intance ec2 mới theo mặc định EBS là 8GB. Bạn có thể sửa đổi kích thước của EBS đính kèm mà không cần tạo intace mới hoặc chụp ảnh nhanh hoặc tách EBS .. Dưới đây là ba bước bạn có thể làm theo:

  1. Thay đổi kích thước âm lượng EBS
  2. Thay đổi kích thước phân vùng
  3. Thay đổi kích thước phân vùng Đối với bước đầu tiên, hãy vào bảng điều khiển AWS của bạn và nhấp vào EBS và thay đổi kích thước mong muốn và nhấp vào sửa đổi.

Đối với các bước còn lại, vui lòng theo dõi bài viết này nếu bạn có bất kỳ câu hỏi nào.

Cảm ơn!

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.