LINUX.ORG.RU

Как ускорить чтение дополнительным диском не замедляя запись?

 , ,


0

2

На данный момент имеется такая конструкция:

  • 6 маленьких HDD и один маленький SSD.
  • 3 массива RAID1 по 2 диска: 512GB, 256GB, 256GB.
  • Все это дело состовляет кэш LVM где SSD идет под кэш.

Все это хорошо работает, но рядом валяется ещё диск на 1tb и хотелось бы его тоже использовать. Естественно добавить просто разделы на этом диске в каждый RAID1 можно, но тогда при записи он будет тормозить их все. А мне надо чтобы с него читало параллельно, а вот запись шла асинхронно.

Существует ли способ сделать что-то подобное?

inb4: прицепить к RAID1 на 512GB и забить



Последнее исправление: o- (всего исправлений: 2)

запись шла асинхронно

Выставляется большое значение длины очереди операций записи. Тогда система нормально относится к тому, что SDD уже закончил запись, а HDD ещё нет. Название опции не помню уже. Она упоминается в некоторых HOWTO по Hybrid RAID1, помимо «write-mostly».

Andrey_Utkin ★★
()
Ответ на: комментарий от Andrey_Utkin

Спасибо, покурю маны на эту тему. Но не уверен что это подойдет, т.к вообще мне конечно надо чтобы запись на основные диски в raid шла так же как и обычно и они не потеряли данные из-за такой «оптимизации».

o-
() автор топика
Ответ на: комментарий от o-

Ну так ты вроде делаешь осознанный выбор в пользу асинхронности. Та опция, о которой я говорил, определяет эту асинхронность количественно.

Andrey_Utkin ★★
()
Ответ на: комментарий от Andrey_Utkin

В общем «write-behind» в мане прямо под «write-mostly» это примерно то что я хочу, но write-mostly:

'md' driver will avoid reading from these devices if at all possible
Но судя по рассылке ядра с него все-таки должно читать когда остальные зеркала под нагрузкой. В общем нужно будет бенчмарком проверить насколько хорошо оно работает.

Ну и как минимум это дополнительное зеркало на случай если что-нибудь упадет.

o-
() автор топика
Ответ на: комментарий от Andrey_Utkin

Мне главное чтобы «основные» диски в рейде синхронизировались как обычно и опция влияла только на зеркала на этом терабайтнике. Судя по манам это так и есть и это именно то, что нужно.

В общем ещё раз спасибо.

o-
() автор топика
Ответ на: комментарий от droserasprout

Вот:

lsblk -d
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda    8:0    0 232,9G  0 disk 
sdb    8:16   0 465,8G  0 disk 
sdc    8:32   0  55,9G  0 disk 
sdd    8:48   0 232,9G  0 disk 
sde    8:64   0 149,1G  0 disk 
sdf    8:80   0 931,5G  0 disk 
sdg    8:96   0 232,9G  0 disk 
sdh    8:112  0 465,8G  0 disk

cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdh1[1] sdf2[2](W) sdb1[0]
      488254464 blocks super 1.2 [3/3] [UUU]
      bitmap: 3/4 pages [12KB], 65536KB chunk

md3 : active raid1 sdf4[1](W) sdd2[0]
      87823360 blocks super 1.2 [2/2] [UU]
      
md2 : active raid1 sdf3[2](W) sde1[0] sdd1[1]
      156155904 blocks super 1.2 [3/3] [UUU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md0 : active raid1 sdf1[2](W) sdg1[1] sda1[0]
      244066304 blocks super 1.2 [3/3] [UUU]
      bitmap: 2/2 pages [8KB], 65536KB chunk

unused devices: <none>

pvs
  PV         VG    Fmt  Attr PSize   PFree
  /dev/md0   lvm   lvm2 a--  232,76g    0 
  /dev/md1   lvm   lvm2 a--  465,63g    0 
  /dev/md2   lvm   lvm2 a--  148,92g    0 
  /dev/md3   trash lvm2 a--   83,75g    0 
  /dev/sdc3  lvm   lvm2 a--   48,82g    0 

lvs
  LV     VG    Attr       LSize   Pool               Origin         Data%  Meta%  Move Log Cpy%Sync Convert
  homefs lvm   Cwi-aoC--- 697,31g [homefs_cachepool] [homefs_corig] 100,00 15,42           0,00            
  rootfs lvm   Cwi-aoC--- 150,00g [rootfs_cachepool] [rootfs_corig] 100,00 16,05           0,00            
  data   trash -wi-ao----  51,75g                                                                          
  swap   trash -wi-ao----  32,00g
Терабайтник это «sdf», SSD это «sdc». В ОП посте ошибся, третий рейд у меня 160GB.

o-
() автор топика
Ответ на: комментарий от o-

В скором будущем очень хочется вместо обычного LV сделать striped LV (160GB с каждого рейда) на 480GB и поставить туда BTRFS с компрессией и дедупликацией, так как там образы виртуалок лежат и некоторые из них почти идентичные. И это одна из причин почему я захотел туда добавить этот терабайтник.

o-
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.