回答:
これはLinuxシステムではまったく正常です。RAMディスクが必要な場合の準備アクションのようなものです。それぞれのサイズは64 MiBで、非常に低い値です。必要に応じて、サイズは自動的に増加します。
突然16個のRAMディスクがWilyで使用可能になる理由を説明するのは困難です。
デフォルトのRAMディスクを以下でテストしました:
RAMディスクドライバーは、メインシステムメモリをブロックデバイスとして使用する方法です。ルートファイルシステムにアクセスするためにモジュールをロードする必要がある場合に使用される初期ファイルシステムであるinitrdに必要です(Documentation / initrd.txtを参照)。また、内容は再起動時に消去されるため、暗号化作業用の一時ファイルシステムにも使用できます。
RAMディスクは、より多くのスペースが必要になると動的に大きくなります。これは、バッファキャッシュのRAMを使用して行われます。ドライバーは、VMサブシステムが後でそれらを再利用しようとしないように、使用しているバッファーをダーティとしてマークします。
RAMディスクはデフォルトで最大16個のRAMディスクをサポートし、無制限の数のRAMディスクをサポートするように再構成できます(自己責任で)。[ブロックドライバーの構成]メニューで構成シンボルBLK_DEV_RAM_COUNTを変更し、カーネルを(再)ビルドします。
fdiskが突然/ dev / ramを報告する理由はわかりません。
ただし、特定のデバイスのみを報告するようにfdiskに指示できます。
fdisk -l /dev/sd*
実際のドライブをリストします。
または、partedとlsblkを使用することもできます。
ここで1つのドライブの分割出力。
Model: ATA Samsung SSD 840 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2096kB 120GB 120GB extended boot
7 2097kB 26.2GB 26.2GB logical ext4
5 26.2GB 36.7GB 10.5GB logical ext4
6 36.7GB 47.2GB 10.5GB logical ext4
対応するlsblk出力
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 1K 0 part
├─sda5 8:5 0 9.8G 0 part /mnt/Links
├─sda6 8:6 0 9.8G 0 part
└─sda7 8:7 0 24.4G 0 part /
私はこのスレッドが古いことを知っていますが、最近になって初めて遭遇しました。Slackware 14.2をインストールした後、の出力で同じ16 RAMディスクを取得しました
fdisk -l
。私はもう少し調べて、「util-linux」パッケージで、どのfdisk(他のものも)の一部であることがわかりました。fdiskがブロックデバイスと見なすものの選択が大幅に変更されました。util-linuxパッケージバージョン2.21では、この決定は報告されたディスクジオメトリに基づいていますが、現在のバージョン2.72では/ proc / partitionsの出力が解析されます。インターネットでの私の検索によると、カーネル2.4からラムディスクはLinuxにありましたが、fdiskはそれらを表示しませんでした。実ディスクではない多くの「ディスク」のリストに悩まされているため、fdiskのパッチを作成しました。
diff -Nur util-linux-2.27.1_ori/disk-utils/fdisk-list.c util-linux-2.27.1_fdisk-no-ram-disks/disk-utils/fdisk-list.c
--- util-linux-2.27.1_ori/disk-utils/fdisk-list.c 2015-10-06 08:59:51.572589724 +0200
+++ util-linux-2.27.1_fdisk-no-ram-disks/disk-utils/fdisk-list.c 2016-08-16 15:55:14.840952091 +0200
@@ -312,6 +312,10 @@
if (devno <= 0)
continue;
+ /* dont list RAM disks */
+ if (strstr(line, "ram") && devno >= 256)
+ continue;
+
if (sysfs_devno_is_lvm_private(devno) ||
sysfs_devno_is_wholedisk(devno) <= 0)
continue;
多分これは他の人を助ける...
ヨハネスの投稿は正しいです。RAMディスクは長い間カーネル内にあり、変更されたのはfdiskの動作です。fdiskにパッチを当てる代わりに、単純なperlスクリプト(5行のコード、6行のコメント行)を作成して問題を処理しました。私はそれを入れましたが~/bin/fdisk-l
、今はとの間にスペースを入れないことを覚えています。fdisk
-l
#! /usr/bin/perl -w
# Run fdisk -l and filter out the 16 /dev/ram devices.
# Sun Mar 5 16:13:45 2017. Jeff Norden, jeff(at)math.tntech.edu
$_=`sudo fdisk -l`; #include sudo we don't have to be root
# weed out ram disks. The seemingly contradictory s (single) and m (multiline)
# flags allow "." to match "\n" and "^" to match at all beginning-of-lines.
s|^Disk /dev/ram.*?\n\n\n||smg;
# Do better than blank lines separating devices. Handle odd cases when there
# are more than two blank lines between devices or none at the end.
$hrule= '='x60 . "\n";
s/(\n\n\n+)|(\n+$)/\n$hrule/g;
print($hrule, $_);
2017年4月現在、RAMディスクは現在のUbuntuカーネルではデフォルトで表示されなくなっているため、この問題は解決されています。参照:https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1593293
この動作は、カスタムカーネルを再コンパイルすることによってのみ変更できるカーネルオプションによって管理されます。GRUBパラメーターramdisk_sizeを使用して、ram *デバイスのサイズを変更できますが、カウントは変更できません。メモリがたくさんある場合でも、すべての RAMディスクは設定したサイズに増加するため、これは役に立ちません。したがって、たとえば、8GBのRAMディスクが必要な場合(これは以下を参照)、8GBのインスタンスが16x取得されます。これらのほとんどを使用しない場合、これが無害であるかどうかはわかりませんが、使用しない場合、システムをブリックすることには消極的です。
8GBの/ dev / ramデバイスを使用して、ホットディスク領域を置くという特定の目的のために、8GBのハードディスクパーティションでミラーリングしたいと思います。私のアプリケーションは、空き領域に基づいてブロックを通常のストレージに自動的に書き出すので、小さいことは問題ではありません。
mdadmでライトビハインドを使用すると、書き込みがバースト的である場合に書き込みが高速になり、少なくともある程度のデータ保護を提供するために静かになるとミラーのHDD側が追いつきます。私はこのセットアップをSolarisで使用しましたが、Linuxではすぐに使用できるようになっているように思えません。
RAMはSSDよりも桁違いに速いので、これは勝利になるはずですが、私はそれを試すことはできません。他の人が気づいたように、tmpfsを使用してRAID1を構築する場合、tmpfsを初期化するステップは、bootallプロセス(mountall)では遅すぎるため、ブート時に再構築されません。あなたのmdsはそれまでにうまく構築されているため、失敗し、手動で再構築する必要があります。
OTOH / dev / ram *デバイスは、これに最適です(構成できる場合)。これらは最初にセットアップされるもので、ram0は初期/ファイルシステムです。