Tôi muốn biết liệu có ai đã thử cài đặt và chạy kernel của họ được tích hợp flashcache hoặc bcache cho bộ nhớ cache SSD không?
Làm thế nào bạn quản lý để làm điều đó?
Tôi muốn biết liệu có ai đã thử cài đặt và chạy kernel của họ được tích hợp flashcache hoặc bcache cho bộ nhớ cache SSD không?
Làm thế nào bạn quản lý để làm điều đó?
Câu trả lời:
Vâng, chúng tôi đã có một câu trả lời bcache nhưng không có câu trả lời flashcache. Tôi đã chọn flashcache vì tôi đã có một bản cài đặt hiện có, vì vậy bcache không còn nữa. Đối với tôi nó có vẻ dễ dàng hơn để thiết lập là tốt. Tôi đã chọn phương thức DKMS vì vậy tôi sẽ không bị kẹt khi xây dựng lại mô-đun / công cụ mỗi khi tôi nâng cấp kernel.
Các bước này được phác thảo trong README-DKMS trên Github.
Xây dựng mô-đun
Điều đầu tiên bạn làm là cài đặt các điều kiện tiên quyết của tòa nhà:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Sau đó, lấy nguồn:
git clone git://github.com/facebook/flashcache; cd flashcache
Xây dựng và cài đặt các mô-đun:
make -f Makefile.dkms
Tạo một thiết bị flashcache
(Trong ví dụ này tôi sử dụng bộ nhớ đệm writBack - mặc định - nhưng flashcache cũng có thể thực hiện ghi và viết)
Bộ nhớ đệm một thiết bị không root (không được gắn tại /)
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
Trong đó fcache là thiết bị được tạo (/ dev / mapper / fcache), / dev / sdaX là phân vùng SSD (hoặc toàn bộ đĩa) và / dev / sdbX là phân vùng ổ cứng.
Bộ nhớ đệm thiết bị gốc của bạn
Có một vài bước nữa nếu bạn lưu trữ thiết bị gốc của mình. Bạn sẽ cần một Ubuntu LiveCD / USB cho phần này.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Chỉnh sửa /boot/grub/grub.cnf và / etc / fstab để khởi động từ / dev / mapper / fcache (Tôi không tin rằng bước này thực sự cần thiết, nhưng nó nói là). Hãy chắc chắn ghi lại UUID của thiết bị gốc của bạn.
Khởi động lại với LiveCD / LiveUSB.
Gắn thiết bị gốc của bạn: mount /dev/sda4 /mnt
(/ dev / sda4 là phân vùng gốc Linux của tôi)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Không cần thực hiện toàn bộ thiết lập DKMS trong môi trường trực tiếp
Ngắt kết nối thiết bị gốc sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
Trong đó fcache là thiết bị được tạo (nó phải giống như bạn đặt trong / etc / fstab và /boot/grub/grub.cnf, trong trường hợp của tôi là fcache), / dev / sdbX là phân vùng SSD (hoặc toàn bộ đĩa ) và [UUID] là UUID của phân vùng gốc của bạn.
Khởi động lại!
Hãy cẩn thận khi sử dụng thiết bị root
Một phiền toái nhỏ khi flashcache được sử dụng cho thiết bị root là đầu dò grub không phát hiện được thiết bị gốc và có thể làm rối menu khởi động của bạn để bạn có hai yêu cầu Ubuntu. Tuy nhiên, việc bạn sử dụng trong thực tế không quan trọng vì make -f Makefile.dkms boot_conf
bước trên sẽ cài đặt một số tập lệnh trong initrd của bạn sẽ phát hiện và sử dụng thiết bị flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
thành linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(nghĩa là thay đổi tham số root =)
Có một công cụ chuyển đổi để kích hoạt bcache trên một thiết bị hiện có (tiết lộ: Tôi đã viết nó). Đây cũng là cách để cài đặt mới, vì các trình cài đặt distro hiện tại không biết cách tạo các thiết bị bcache (trong trường hợp này: bắt đầu bằng cách cài đặt vào ổ cứng).
Xem chuyển đổi hệ thống tập tin gốc của bạn sang bcache trong blocks
README để được hướng dẫn.
bcache đòi hỏi Linux 3.10 hoặc mới hơn, mà là ở ngang tàng, và có thể được cài đặt bằng tay từ
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (nhìn cho việc phát hành được gắn thẻ mới nhất , hiện tại v3.11.5-saucy
và cài đặt các bản sửa lỗi phù hợp với kiến trúc của bạn).
bcache-tools
và blocks
có thể được cài đặt từ ppa lưu trữ của tôi .
/
, /home
, /usr/
, ...) trong khi hệ thống đang chạy (như maintboot bị tổn thương). Để thay thế, bạn có thể sử dụng USB Stick trực tiếp, cài đặt blocks
tại đó và sử dụng nó để chuyển đổi đĩa của bạn. Tuy nhiên, hãy cẩn thận rằng công cụ này chỉ hoạt động trên các bảng phân vùng MBR và GPT chính và yêu cầu thêm 1MiB không gian trước mỗi phân vùng.
Cảnh báo trước: bcache không thể được sử dụng cho cài đặt Ubuntu hiện tại của bạn. Nếu bạn cần bộ nhớ đệm SSD cho hệ điều hành của mình, bạn nên chờ phiên bản tương lai hoặc phiên bản đặc biệt của trình cài đặt Ubuntu có thể thiết lập bộ đệm SSD của bạn. Xem câu trả lời này của Oli tại đây: bcache có yêu cầu cài đặt mới không?
Đối với những người khác muốn có ổ đĩa bcache cho dữ liệu không phải hệ điều hành:
Điều đầu tiên cần làm là nâng cấp kernel của bạn nếu bạn sử dụng 13.04 trở lên bằng PPA dòng chính kernel. Hướng dẫn sử dụng này có thể được tìm thấy ở đây:
https://wiki.ubfox.com/Kernel/MainlineBuilds
Đảm bảo bạn chọn kernel 3.9 trở lên khi khởi động nếu không nó sẽ không hoạt động và ổ đĩa của bạn sẽ biến mất.
Cài đặt bcache-tools, tại thời điểm này, bạn sẽ phải cài đặt từ kho git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Nếu bạn quản lý để gói bcache-tools
cho debian, hãy cho chúng tôi biết và câu hỏi này sẽ được cập nhật cho bạn. ( bcache-tools
phụ thuộc vào bản dựng là uuid-dev
và libblkid-dev
. Chúng phải được cài đặt để xây dựng bcache-tools
.)
Khi bạn đã có tất cả các công cụ, bạn đã sẵn sàng thử và làm theo hướng dẫn tại đây:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
Hướng dẫn này chỉ ra cách định dạng các ổ đĩa (SSD VÀ ổ cứng) và sau đó gắn chúng lại với nhau để tạo một khối thiết bị mới bằng bcache. Đăng một bình luận nếu bạn thấy các hướng dẫn khó hiểu và tôi sẽ cập nhật câu trả lời này với sự đơn giản hóa.
Tôi nghĩ rằng tôi sẽ đến đây và nhận xét về những gì xảy ra với tôi khi tôi cài đặt kernel mới. Tôi chỉ sử dụng flashcache cho phân vùng / home / thư mục. Tôi đã cài đặt kernel mới, khởi động vào nó và nó dừng lại trong quá trình khởi động và nói rằng nó không thể tìm thấy / dev / mapper / home_cached, có 3 lựa chọn bạn có khi nhận được thông báo này và tôi chọn tùy chọn để đăng nhập bằng root và cố gắng sửa nó Lần đầu tiên tôi thử tải mô-đun flashcache và nó nói rằng nó không thể tìm thấy nó. Vì vậy, tôi nghĩ rằng tôi sẽ phải biên dịch và cài đặt nó cho kernel mới mà tôi vừa cài đặt. tôi vẫn còn thư mục / flashcache / nằm trong / root / vì vậy tôi đã vào đó và chạy
make -f Makefile.dkms boot_conf
sau đó tôi chạy
make install
sau đó tôi tải mô-đun flashcache với
modprobe flashcache
sau đó tôi chỉ cần tải thiết bị flashcache hiện có của mình
flashcache_load /dev/sdb1
sau đó chỉ cần gắn kết phân vùng nhà của tôi với
mount /home
sau đó thoát ra khỏi việc đăng nhập bằng root với thoát trên dòng lệnh và nó sẽ tiếp tục khởi động như bình thường. tất cả đã được làm xong!