Selain tmpfsdan ramfs, opsi lain adalah /dev/ram0perangkat blokir. Pada versi Ubuntu terbaru, perangkat ini tidak ada secara default, tetapi dapat dibuat via modprobe brd.
Pendekatan ini lebih dapat diprediksi karena ia menciptakan ext4sistem file nyata dan tidak pernah melebihi batas yang Anda tentukan. Tetapi butuh lebih banyak langkah untuk mengatur, dan menggunakan RAM kurang efisien.
Menggunakan modul brd kernel (/ dev / ram0)
Untuk membuat dan menginisialisasi disk RAM 4GB:
mkdir /ramdisk
modprobe brd rd_nr=1 rd_size=$((4 * 1048576))
mkfs.ext4 /dev/ram0
mount /dev/ram0 /ramdisk
The rd_nrparameter menentukan berapa banyak disk RAM untuk membuat (secara default, itu menciptakan 16, yaitu /dev/ram0melalui /dev/ram15). The rd_sizeparameter ukuran dalam kilobyte . The $(( ... ))sintaks memungkinkan Anda melakukan aritmatika di shell.
Untuk membatalkan alokasi disk RAM, unmount dan lepaskan brdmodul kernel:
umount /ramdisk
modprobe -r brd
Membuat perangkat blok di dalamnya ramfs
Atau, Anda dapat membuat perangkat blok di dalam ramfs:
mkdir /ramdisk-storage /ramdisk
mount -t ramfs ramfs /ramdisk-storage
truncate -s 4G /ramdisk-storage/ramdisk.img
mkfs.ext4 /ramdisk-storage/ramdisk.img
mount /ramdisk-storage/ramdisk.img /ramdisk
The truncatePerintah menciptakan sebuah file kosong dari ukuran tertentu sedemikian rupa sehingga diinisialisasi (yaitu mengkonsumsi memori) on-demand.
Untuk membatalkan alokasi disk RAM, umount dan hapus gambar disk:
umount /ramdisk
rm /ramdisk-storage/ramdisk.img
Perbandingan dengan tmpfsdanramfs
Meskipun tmpfsdan ramfslebih efisien daripada menggunakan perangkat blok, di bawah ini adalah beberapa kelemahannya.
tmpfsdapat bertukar ke disk. Ini lebih efisien, tetapi mungkin ada saatnya Anda menginginkan disk RAM murni:
- File yang Anda kerjakan sensitif (misalnya file dari partisi yang dienkripsi).
- Anda melakukan pengujian kinerja dan Anda tidak ingin disk I / O menjadi faktor (waktu penulisan SSD dapat sangat bervariasi).
- Anda membongkar file besar dan Anda tidak ingin aus SSD Anda.
ramfsmudah untuk diatur, mengambil kembali ruang setelah Anda menghapus file, dan menggunakan RAM lebih efisien (sistem tidak buffer file karena tahu mereka ada dalam RAM). Tetapi memiliki kelemahan dan kejutannya sendiri:
The dfutilitas tidak melaporkan penggunaan ruang:
root@cello-linux:~# df -h /ramdisk
Filesystem Size Used Avail Use% Mounted on
ramfs 0 0 0 - /ramdisk
Tidak ada parameter batas ukuran. Jika Anda menaruh terlalu banyak di ramdisk, sistem Anda akan hang.
File yang jarang dapat menjadi tidak jelas ketika Anda tidak mengharapkannya. Pagi ini, saya menyalin gambar VM (150G, tetapi 49G digunakan pada disk) ke ramfs(saya punya 128G RAM). Itu berhasil. Tapi ketika saya disalin dari yang ramfske tujuan, sistem saya menjadi tidak responsif. The cputilitas rupanya mengisi lubang di membaca , tetapi tidak pada menulis.
Keduanya tmpfsdan ramfsmungkin berperilaku berbeda dari ext4sistem file nyata . Membuat perangkat blok dalam RAM dan menginisialisasi dengan ext4menghindari ini.
Untuk perbandingan yang lebih mendalam: https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
mount -o size=16G -t tmpfs none /mnt/tmpfs