Страница 1 из 1

зеркало из usb-флешек на фре

Добавлено: 2014-05-31 12:43:05
raven428
Здравствуйте. Пытаюсь сделать загрузочное зеркало из двух usb-флешек. Флешки обычные, ничего особенного:

Код: Выделить всё

May 31 07:47:28 vmstor kernel: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
May 31 07:47:28 vmstor kernel: da0: <UFD 3.0 Silicon-Power16G PMAP> Removable Direct Access SCSI-6 device
May 31 07:47:28 vmstor kernel: da0: Serial Number P1312160070B3C53D05D7171
May 31 07:47:28 vmstor kernel: da0: 40.000MB/s transfers
May 31 07:47:28 vmstor kernel: da0: 15120MB (30965760 512 byte sectors: 255H 63S/T 1927C)
May 31 07:47:28 vmstor kernel: da0: quirks=0x2<NO_6_BYTE>
Если делать scrub пула из одной флешки (без зеркала), то всё замечательно:

Код: Выделить всё

  scan: scrub in progress since Sat May 31 08:36:45 2014
        461M scanned out of 2,87G at 25,6M/s, 0h1m to go
        0 repaired, 15,71% done
Но когда я делаю attach второй флешки в зеркало, то начинается ужас:

Код: Выделить всё

  scan: resilver in progress since Sat May 31 07:49:55 2014
        242M scanned out of 2,87G at 122K/s, 6h17m to go
        242M resilvered, 8,25% done
Обе флешки только что из магазина. Тестировал их через dd: по одиночке около 33 мб/с чтение и около 25 мб/с запись. Если с помощью dd писать и/или читать их одновременно, то скорость ниже, но всё ещё приемлимая: около 17-20 мб/с. Операционная система такая "FreeBSD 10.0-STABLE #0 r266463: Tue May 20 18:24:03 UTC 2014". Конфигурация адра довольно простая:

Код: Выделить всё

include GENERIC
ident vmstor
nooptions INET6
nooptions AHC_REG_PRETTY_PRINT
nooptions AHD_REG_PRETTY_PRINT
options CONSPEED=19200
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=512
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options DUMMYNET
options SHMMAXPGS=65536
options SEMMNI=128
options SEMMNS=32000
options SEMUME=40
options SEMMNU=120
options SEMOPM=250
options SEMMSL=250
options SHMMNI=4096
options SHMSEG=4096
options MAXDSIZ="(1024*1027*1024)"
options MAXSSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
options SHMMAX=2147483647
options SHMALL=2097152
Железо - десктопные мамки с Intel 82801G (ICH7) USB controller на первом и Intel PCH USB 2.0 controller на второй компе. Ещё я попытался вставить дополнительный контроллер VIA VT6202 USB 2.0 PCI, чтобы разделить флешки по разным контроллерам, но это не помогло.

Так же я пробовал gmirror на этих двух флешках. Ребилдится он на высокой скорости типа 20-30 мб/с, но когда я запускаю restore на зеркало (конечно же после окончания ребилда), то проявляется тот же ужас в виде 100-200 кб/с на запись.

Вообще возможно ли построить такое зеркало как мне хочется на фре или я много хочу от обычного копеечного десктопного железа? Если это всё таки возможно, то что я делаю не так?

Re: зеркало из usb-флешек на фре

Добавлено: 2014-05-31 22:34:31
Alex Keda
включите асинхронный режим

Re: зеркало из usb-флешек на фре

Добавлено: 2014-06-01 6:40:24
raven428
каким образом?

Re: зеркало из usb-флешек на фре

Добавлено: 2014-06-01 22:29:50
Alex Keda

Код: Выделить всё

mount -o async 

Re: зеркало из usb-флешек на фре

Добавлено: 2014-06-01 23:12:22
andrian_freebsd
Исходя с информации что вы предоставили, смысла в зеркале нету, так как запись райда 1 - слабое место, тем более на флешках (ресурс считывания и записи будет не долгим) я б делал все ето двумя вариантами:
1. На первой флешке сделал одну партицию под root тоесть "/".
root@reactor:/usr/home/andrian # gpart show da0
=> 34 15663037 da0 GPT (7.5G)
34 128 1 freebsd-boot (64K)
162 15662908 2 freebsd-ufs (7.5G)
15663070 1 - free - (512B)
После инсталяции системы или заливки ее с другой работающей системы в /etc/fstab в колонке монтирования изменить на "ro" (тогда var и tmp создадутся в оперативной памяти).

# Device Mountpoint FStype Options Dump Pass#
/dev/da0p2 / ufs ro 1 1


Так же и распределить вторую флешку и помните вторую тоже надо сделать загрузочной! После изменений в системе (тоесть конфигов или установка пакетов) делать dump корня первой флешки на другую (если вы загрузились с первой флешки или наоборот если со второй). Конечно после dump - restore нужно поменять имя девайса в /etc/fstab если конечно вы в биосе компютера при втыкнутих двух флешках захотите загрузится со второй!!!

2. Если надо рейд, тогда как в первом варианте только сделать две партиции,
root@reactor:/usr/home/andrian # gpart show da0
=> 34 15663037 da0 GPT (7.5G)
34 128 1 freebsd-boot (64K)
162 5662908 2 freebsd-ufs (2.5G)
5662909 15663070 3 freebsd-ufs (5G)
15663070 1 - free - (512B)

что б вторую партицыю (тоесть da0p3) отдать под рейд (graid).
#graid label Intel gm0 RAID1 da0p3 da1p3

# graid status
Name Status Components
raid/gm0 OPTIMAL da0p3 (ACTIVE (ACTIVE))
da1p3 (ACTIVE (ACTIVE))

Вам решать.