ãã®èšäºã§ã¯ãRAID ã¢ã¬ã€ãæ§æããããŸããŸãªæ¹æ³ã«ã€ããŠèª¬æããNVMe ããµããŒãããæåã®ããŒããŠã§ã¢ RAID ã³ã³ãããŒã©ãŒã® XNUMX ã€ã«ã€ããŠã説æããŸãã
RAID ãã¯ãããžãŒã®ããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã¯ãã¹ãŠãµãŒã㌠ã»ã°ã¡ã³ãã«ãããŸãã ã¯ã©ã€ã¢ã³ã ã»ã°ã¡ã³ãã§ã¯ã0 ã€ã®ãã£ã¹ã¯äžã®ãœãããŠã§ã¢ RAID1 ãŸã㯠RAIDXNUMX ã®ã¿ãæããã䜿çšãããŸãã
ãã®èšäºã§ã¯ãRAID ãã¯ãããžãŒã®ç°¡åãªæŠèŠãXNUMX ã€ã®ç°ãªãããŒã«ã䜿çšã㊠RAID ã¢ã¬ã€ãäœæããæ¹æ³ã«é¢ããçããã¥ãŒããªã¢ã«ãããã³åæ¹æ³ã䜿çšããä»®æ³ãã£ã¹ã¯ã®ããã©ãŒãã³ã¹ã®æ¯èŒãæäŸããŸãã
RAIDãšã¯äœã§ãã?
RAID ïŒè±èª ç¬ç«ãããã£ã¹ã¯ã®åé·ã¢ã¬ã€ - ç¬ç«ãã (ç¬ç«ãã) ãã£ã¹ã¯ã®åé·ã¢ã¬ã€) - ãã©ãŒã«ã ãã¬ã©ã³ã¹ãšããã©ãŒãã³ã¹ãåäžãããããã«ãè€æ°ã®ç©çãã£ã¹ã¯ ããã€ã¹ãè«çã¢ãžã¥ãŒã«ã«çµåããããŒã¿ä»®æ³åãã¯ãããžã
ãã£ã¹ã¯ ã¢ã¬ã€ã®æ§æãšäœ¿çšããããã¯ãããžã¯ãéžæãããã£ã¹ã¯ ã¢ã¬ã€ã«ãã£ãŠç°ãªããŸãã RAIDã¬ãã«ã RAID ã¬ãã«ã¯ä»æ§ã§æšæºåãããŠããŸã
RAID0ãŸã㯠ã¹ãã©ã€ãã¯ãXNUMX ã€ä»¥äžã®ç©çãã©ã€ãã XNUMX ã€ã®è«çãã©ã€ãã«çµåãã RAID ã¬ãã«ã§ãã è«çãã£ã¹ã¯ã®å®¹éã¯ãã¢ã¬ã€ã«å«ãŸããç©çãã£ã¹ã¯ã®å®¹éã®åèšãšçãããªããŸãã ãã® RAID ã¬ãã«ã«ã¯åé·æ§ããªããXNUMX ã€ã®ãã©ã€ãã«é害ãçºçãããšãä»®æ³ãã£ã¹ã¯å ã®ãã¹ãŠã®ããŒã¿ã倱ãããå¯èœæ§ããããŸãã
УÑÐŸÐ²ÐµÐœÑ RAID1ãŸã㯠é¡ãããŒã¿ã®åäžã®ã³ããŒã 1 ã€ä»¥äžã®ãã£ã¹ã¯ã«äœæããŸãã ä»®æ³ãã£ã¹ã¯ã®ãµã€ãºã¯ãç©çãã£ã¹ã¯ã®æå°ãµã€ãºãè¶ ããŸããã RAID1 ä»®æ³ãã£ã¹ã¯äžã®ããŒã¿ã¯ãã¢ã¬ã€å ã®å°ãªããšã XNUMX ã€ã®ç©çãã£ã¹ã¯ãåäœããŠããéã䜿çšã§ããŸãã RAIDXNUMX ã䜿çšãããšåé·æ§ãè¿œå ãããŸãããXNUMX ã€ä»¥äžã®ãã£ã¹ã¯ã®ã¢ã¬ã€ã§ã¯ XNUMX ã€ã®ãã£ã¹ã¯ã®å®¹éãã䜿çšã§ããªããããããªãé«äŸ¡ãªãœãªã¥ãŒã·ã§ã³ã«ãªããŸãã
УÑÐŸÐ²ÐµÐœÑ RAID5 ã³ã¹ãé«ã®åé¡ã解決ããŸãã RAID5 ã¬ãã«ã®ã¢ã¬ã€ãäœæããã«ã¯ãå°ãªããšã 3 ã€ã®ãã£ã¹ã¯ãå¿ èŠã§ãã¢ã¬ã€ã¯ 5 ã€ã®ãã£ã¹ã¯ã®é害ã«å¯ŸããŠèæ§ããããŸãã RAID5 ã®ããŒã¿ã¯ããã§ãã¯ãµã ä»ãã®ãããã¯ã«ä¿åãããŸãã ããŒã¿ ãã£ã¹ã¯ãšãã§ãã¯ãµã ãã£ã¹ã¯ã®éã«ã¯å³å¯ãªåºå¥ã¯ãããŸããã RAID1 ã®ãã§ãã¯ãµã ã¯ããããããç°ãªããã£ã¹ã¯ããååŸããã N-XNUMX åã®ãããã¯ã«é©çšããã XOR æŒç®ã®çµæã§ãã
RAID ã¢ã¬ã€ã¯åé·æ§ãé«ããŠåé·æ§ãæäŸããŸãããããã¯ã¢ããã®ä¿åã«ã¯é©ããŠããŸããã
RAID ã¢ã¬ã€ã®çš®é¡ã«ã€ããŠç°¡åã«èª¬æããåŸããã£ã¹ã¯ ã¢ã¬ã€ãçµã¿ç«ãŠãŠäœ¿çšã§ããããã€ã¹ãšããã°ã©ã ã«é²ãããšãã§ããŸãã
RAIDã³ã³ãããŒã©ãŒã®çš®é¡
RAID ã¢ã¬ã€ãäœæããŠäœ¿çšããã«ã¯ãããŒããŠã§ã¢ãšãœãããŠã§ã¢ã® XNUMX ã€ã®æ¹æ³ããããŸãã 次ã®è§£æ±ºçãæ€èšããŸãã
- Linux ãœãããŠã§ã¢ RAIDã
- CPU äžã®ã€ã³ãã«Â® ä»®æ³ RAIDã
- LSI MegaRAID 9460-8iã
ã€ã³ãã«Â® ãœãªã¥ãŒã·ã§ã³ã¯ãããã»ããäžã§å®è¡ããããããããŒããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãªã®ããœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãªã®ããšããåé¡ãçããããšã«æ³šæããŠãã ããã ããšãã°ãVMWare ESXi ãã€ããŒãã€ã¶ãŒã¯ VROC ãœãããŠã§ã¢ãèæ ®ããŠãããæ£åŒã«ã¯ãµããŒãããŠããŸããã
Linux ãœãããŠã§ã¢ RAID
Linux OS ãã¡ããªã®ãœãããŠã§ã¢ RAID ã¢ã¬ã€ã¯ãã¯ã©ã€ã¢ã³ã ã»ã°ã¡ã³ããšãµãŒã㌠ã»ã°ã¡ã³ãã®äž¡æ¹ã§éåžžã«äžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ãã ã¢ã¬ã€ã®äœæã«å¿ èŠãªã®ã¯ãmdadm ãŠãŒãã£ãªãã£ãšããã€ãã®ããã㯠ããã€ã¹ã ãã§ãã Linux ãœãããŠã§ã¢ RAID ã䜿çšãããã©ã€ãã«èª²ãå¯äžã®èŠä»¶ã¯ãã·ã¹ãã ããã¢ã¯ã»ã¹ã§ããããã㯠ããã€ã¹ã§ããããšã§ãã
æ©åšããœãããŠã§ã¢ã®ã³ã¹ããããããªãããšã¯ããã®æ¹æ³ã®æãããªå©ç¹ã§ãã Linux ãœãããŠã§ã¢ RAID ã¯ãCPU æéãç ç²ã«ããŠãã£ã¹ã¯ ã¢ã¬ã€ãç·šæããŸãã ãµããŒããããŠãã RAID ã¬ãã«ã®ãªã¹ããšçŸåšã®ãã£ã¹ã¯ ã¢ã¬ã€ã®ã¹ããŒã¿ã¹ã¯ãprocfs ã«ãŒãã«ãã mdstat ãã¡ã€ã«ã§ç¢ºèªã§ããŸãã
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
RAID ã¬ãã«ã®ãµããŒãã¯ãé©åãªã«ãŒãã« ã¢ãžã¥ãŒã«ãæ¥ç¶ããããšã«ãã£ãŠè¿œå ãããŸããäŸ:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices: <none>
ãã£ã¹ã¯ ã¢ã¬ã€ã«é¢ãããã¹ãŠã®æäœã¯ãmdadm ã³ãã³ã ã©ã€ã³ ãŠãŒãã£ãªãã£ãéããŠå®è¡ãããŸãã ãã£ã¹ã¯ ã¢ã¬ã€ã¯ XNUMX ã€ã®ã³ãã³ãã§çµã¿ç«ãŠãããŸãã
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1
ãã®ã³ãã³ããå®è¡ãããšã/dev/md0 ããã㯠ããã€ã¹ãã·ã¹ãã ã«è¡šç€ºãããä»®æ³ãã£ã¹ã¯ãšããŠè¡šç€ºãããŸãã
CPU äžã®ã€ã³ãã«Â® ä»®æ³ RAID
ã€ã³ãã«Â® VROC æšæºããŒããŠã§ã¢ ããŒ
Intel® Virtual RAID On CPU (VROC) ã¯ãIntel® ãããã»ããã«åºã¥ã㊠RAID ã¢ã¬ã€ãäœæããããã®ããŒããŠã§ã¢ããã³ãœãããŠã§ã¢ ãã¯ãããžã§ãã ãã®ãã¯ãããžãŒã¯äž»ã«ãã€ã³ãã«Â® Xeon® ã¹ã±ãŒã©ãã« ããã»ããµãŒããµããŒããããã¶ãŒããŒãã§å©çšã§ããŸãã ããã©ã«ãã§ã¯ãVROC ã¯äœ¿çšã§ããŸããã ãããã¢ã¯ãã£ãã«ããã«ã¯ãVROC ããŒããŠã§ã¢ ã©ã€ã»ã³ã¹ ããŒãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
æšæº VROC ã©ã€ã»ã³ã¹ã䜿çšãããšã0ã1ãããã³ 10 RAID ã¬ãã«ã®ãã£ã¹ã¯ ã¢ã¬ã€ãäœæã§ããŸãã ãã¬ãã¢ã ããŒãžã§ã³ã§ã¯ãRAID5 ãµããŒãã«ãããã®ãªã¹ããæ¡åŒµãããŸãã
ææ°ã®ãã¶ãŒããŒãäžã®ã€ã³ãã«Â® VROC ãã¯ãããžãŒã¯ãNVMe ãã©ã€ãã«ãããã¹ã¯ããæ©èœãæäŸããã€ã³ãã«Â® ããªã¥ãŒã 管çããã€ã¹ (VMD) ãšé£æºããŠåäœããŸãã
ã€ã³ãã«Â® VROC æšæºã©ã€ã»ã³ã¹ ã¢ã¬ã€ã¯ããµãŒããŒã®èµ·åæã«ã»ããã¢ãã ãŠãŒãã£ãªãã£ãéããŠèšå®ãããŸãã ã¿ãäž é«æ©èœ [Intel® Virtual RAID on CPU] é ç®ã衚瀺ããããã£ã¹ã¯ ã¢ã¬ã€ãæ§æã§ããŸãã
1 ã€ã®ãã©ã€ãã« RAIDXNUMX ã¢ã¬ã€ãäœæãã
ã€ã³ãã«Â® VROC ãã¯ãããžãŒã«ã¯ç¬èªã®ãšãŒã¹ãåãã£ãŠããŸãã VROC ã䜿çšããŠæ§ç¯ããããã£ã¹ã¯ ã¢ã¬ã€ã¯ãLinux ãœãããŠã§ã¢ RAID ãšäºææ§ããããŸãã ããã¯ãã¢ã¬ã€ã®ç¶æ
ã /proc/mdstat ã§ç£èŠããmdadm ãéããŠç®¡çã§ããããšãæå³ããŸãã ãã®ãæ©èœãã¯ã€ã³ãã«ã«ãã£ãŠæ£åŒã«ãµããŒããããŠããŸãã ã»ããã¢ãã ãŠãŒãã£ãªãã£ã§ RAID1 ãçµã¿ç«ãŠãåŸãOS ã§ã®ãã©ã€ãã®åæã確èªã§ããŸãã
root@grindelwald:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 nvme2n1[1] nvme1n1[0]
1855832064 blocks super external:/md127/0 [2/2] [UU]
[>....................] resync = 1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
10402 blocks super external:imsm
unused devices: <none>
mdadm ã䜿çšã㊠VROC äžã§ã¢ã¬ã€ãçµã¿ç«ãŠãããšã¯ã§ããªãããšã«æ³šæããŠãã ãã (çµã¿ç«ãŠãããã¢ã¬ã€ã¯ Linux SW RAID ã«ãªããŸã)ããã ããã¢ã¬ã€å ã®ãã£ã¹ã¯ãå€æŽããããã¢ã¬ã€ãéã¢ã»ã³ãã«ããããšã¯ã§ããŸãã
LSI MegaRAID 9460-8i
LSI MegaRAID 9460-8i ã³ã³ãããŒã©ã®å€èŠ³
RAID ã³ã³ãããŒã©ãŒã¯ã¹ã¿ã³ãã¢ãã³ã®ããŒããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ã§ãã ã³ã³ãããŒã©ãŒã¯ãã³ã³ãããŒã©ãŒã«çŽæ¥æ¥ç¶ããããã©ã€ãã§ã®ã¿åäœããŸãã ãã® RAID ã³ã³ãããŒã©ã¯ãæ倧 24 å°ã® NVMe ãã©ã€ãããµããŒãããŸãã ãã®ã³ã³ãããŒã©ãŒãä»ã®å€ãã®ã³ã³ãããŒã©ãŒãšåºå¥ããã®ã¯ãNVMe ãµããŒãã§ãã
ããŒããŠã§ã¢ã³ã³ãããŒã©ãŒã®ã¡ã€ã³ã¡ãã¥ãŒ
UEFI ã¢ãŒãã䜿çšããå Žåãã³ã³ãããŒã©ãŒèšå®ã¯ã»ããã¢ãã ãŠãŒãã£ãªãã£ã«çµ±åãããŸãã VROC ãšæ¯èŒãããšãããŒããŠã§ã¢ ã³ã³ãããŒã©ãŒ ã¡ãã¥ãŒã¯ã¯ããã«è€éã«èŠããŸãã
1 ã€ã®ãã£ã¹ã¯ã« RAIDXNUMX ãäœæãã
ããŒããŠã§ã¢ ã³ã³ãããŒã©ãŒã§ãã£ã¹ã¯ ã¢ã¬ã€ãæ§æããæ¹æ³ã説æããã®ã¯ããªãããªã±ãŒããªãããã¯ã§ãããæ¬æ Œçãªèšäºãå¿
èŠã«ãªãå¯èœæ§ããããŸãã ããã§ã¯ãããã©ã«ãèšå®ã§ RAID0 ãš RAID1 ãäœæããããšã«éå®ããŸãã
ããŒããŠã§ã¢ ã³ã³ãããŒã©ãŒã«æ¥ç¶ãããŠãããã£ã¹ã¯ã¯ããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ããã¯èªèãããŸããã 代ããã«ãã³ã³ãããŒã©ãŒã¯ãã¹ãŠã® RAID ã¢ã¬ã€ã SAS ãã©ã€ããšããŠããã¹ã¯ãããŸãã ã³ã³ãããŒã©ã«æ¥ç¶ãããŠãããããã£ã¹ã¯ ã¢ã¬ã€ã®äžéšã§ã¯ãªããã©ã€ãã«ã¯ãOS ããã¢ã¯ã»ã¹ã§ããŸããã
root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: AVAGO
Product: MR9460-8i
Revision: 5.14
Compliance: SPC-3
User Capacity: 1,999,844,147,200 bytes [1.99 TB]
Logical block size: 512 bytes
Rotation Rate: Solid State Device
Logical Unit id: 0x000000000000000000000000000000
Serial number: 00000000000000000000000000000000
Device type: disk
Local Time is: Sun Oct 11 16:27:59 2020 MSK
SMART support is: Unavailable - device lacks SMART capability.
SAS ãã©ã€ããšããŠåœè£ ãããŠããã«ãããããããNVMe ã¢ã¬ã€ã¯ PCIe é床ã§åäœããŸãã ãã ãããã®æ©èœã䜿çšãããšãã¬ã¬ã·ãŒã§ NVMe ããèµ·åã§ããããã«ãªããŸãã
ãã¹ãã¹ã¿ã³ã
ãã£ã¹ã¯ã¢ã¬ã€ãæ§æããåæ¹æ³ã«ã¯ãããããç©ççãªé·æãšçæããããŸãã ãããããã£ã¹ã¯ã¢ã¬ã€ã䜿çšããå Žåã«ããã©ãŒãã³ã¹ã®éãã¯ããã®ã§ãããã?
æ倧éã®å ¬å¹³æ§ãå®çŸããããã«ããã¹ãŠã®ãã¹ãã¯åããµãŒããŒäžã§å®è¡ãããŸãã ãã®æ§æ:
- 2x ã€ã³ãã«Â® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- ã€ã³ãã«Â® VROC æšæºããŒããŠã§ã¢ ããŒ;
- 4x ã€ã³ãã«Â® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GBã
ãã¹ã ãŠããã㯠P4510 ã§ãååã¯ãã¶ãŒããŒãã«æ¥ç¶ãããããåå㯠RAID ã³ã³ãããŒã©ã«æ¥ç¶ãããŸãã M.2 㯠Ubuntu 20.04 ãå®è¡ããŠããããã¹ã㯠fio ããŒãžã§ã³ 3.16 ã䜿çšããŠå®è¡ãããŸãã
ãã¹ã
ãŸãããã£ã¹ã¯ãæäœãããšãã®é 延ã確èªããŠã¿ãŸãããã ãã¹ã㯠4 ã€ã®ã¹ã¬ããã§å®è¡ãããããã㯠ãµã€ãºã¯ 5 KB ã§ãã åãã¹ã㯠XNUMX åéç¶ããŸãã éå§ããåã«ã察å¿ããããã㯠ããã€ã¹ã¯ I/O ã¹ã±ãžã¥ãŒã©ãšã㊠none ã«èšå®ãããŸãã fio ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw=<mode> --filename=<blkdev>
fio ã®çµæãããclat 㯠99.00% ãšãªããŸãã çµæã以äžã®è¡šã«ç€ºããŸãã
ã©ã³ãã èªã¿åããÎŒs
ã©ã³ãã é²é³ãÎŒs
ãã©ã€ã
112
78
Linux SW RAIDãRAID0
113
45
VROCãRAID0
112
46
LSIãRAID0
122
63
Linux SW RAIDãRAID1
113
48
VROCãRAID1
113
45
LSIãRAID1
128
89
ããŒã¿ã¢ã¯ã»ã¹æã®é 延ã«å ããŠãä»®æ³ãã©ã€ãã®ããã©ãŒãã³ã¹ã確èªããç©çãã£ã¹ã¯ã®ããã©ãŒãã³ã¹ãšæ¯èŒããããšèããŠããŸãã fio ãå®è¡ããã³ãã³ã:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth=<threads> --rw=<mode> --filename=<blkdev>
ããã©ãŒãã³ã¹ã¯ I/O æäœã®èŠ³ç¹ãã枬å®ãããŸãã çµæã以äžã®è¡šã«ç€ºããŸãã
ã©ã³ãã èªã¿åã 1 ã¹ã¬ãããIOPS
ã©ã³ãã æžã蟌㿠1 ã¹ã¬ãããIOPS
ã©ã³ãã èªã¿åã 128 ã¹ã¬ãããIOPS
ã©ã³ãã æžã蟌㿠128 ã¹ã¬ãããIOPS
ãã©ã€ã
11300
40700
453000
105000
Linux SW RAIDãRAID0
11200
52000
429000
232000
VROCãRAID0
11200
52300
441000
162000
LSIãRAID0
10900
44200
311000
160000
Linux SW RAIDãRAID1
10000
48600
395000
147000
VROCãRAID1
10000
54400
378000
244000
LSIãRAID1
11000
34300
229000
248000
ããŒããŠã§ã¢ ã³ã³ãããŒã©ãŒã䜿çšãããšããœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ã«æ¯ã¹ãŠé 延ãå¢å ããããã©ãŒãã³ã¹ãäœäžããããšãç°¡åã«ããããŸãã
ãŸãšã
ããŒããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ã䜿çšã㊠XNUMX ã€ã®ãã£ã¹ã¯ãããã£ã¹ã¯ ã¢ã¬ã€ãäœæããã®ã¯éåççã§ãã ãã ããRAID ã³ã³ãããŒã©ãŒã®äœ¿çšãæ£åœåãããã¿ã¹ã¯ããããŸãã NVMe ã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããã³ã³ãããŒã©ãŒã®åºçŸã«ããããŠãŒã¶ãŒã¯ãããžã§ã¯ãã§ããé«é㪠SSD ã䜿çšããæ©äŒãåŸãããŸãã
ç»é²ãŠãŒã¶ãŒã®ã¿ãã¢ã³ã±ãŒãã«åå ã§ããŸãã
RAID ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠããŸãã?
-
èŠèŽè ã®ïŒïŒ%ãã¯ããããŒããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³32
-
èŠèŽè ã®ïŒïŒ%ãã¯ãããœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³54
-
èŠèŽè ã®ïŒïŒ%ãNo18
-
èŠèŽè ã®ïŒïŒ%ãRAID ã¯å¿ èŠãããŸãã4
108 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 14åã®ãŠãŒã¶ãŒãæ£æš©ããã
åºæïŒ habr.com