490 likes | 867 Views
Synology Technology. Alex Wang May 1, 2008. Outline. Hardware architecture Software architecture Performance Competitive cost Quality. Hardware Architecture. Hardware Specification. DS407 Board. Software Architecture. Software Architecture.
E N D
Synology Technology Alex Wang May 1, 2008
Outline • Hardware architecture • Software architecture • Performance • Competitive cost • Quality
Software Architecture • 1 source tree for multiple platform5 CPU, 19 models • Only change boot loader, kernel, and toolchain • Sometimes build our own toolchaincrosstool: http://www.kegel.com/crosstool/ • Chroot build process
Flash Layout 2 MB 4 MB Kernel 0x200000, 2MB Kernel 0xD0000, 832 KB Hw config (0x10000) Reserved 0x20000 Ramdisk 0x180000, 1.5MB ppcboot (0x40000) Ramdisk 0xD0000, 704KB Hw config (0x10000) Reserved 0x20000 FIS directory (0x10000) FIS directory (0x10000) uboot (0x40000)
Boot Procedure Kernel mounts memory disk Flash RAM 6 Ramdisk init Ramdisk 3 initrd 0x800000 0xFFE00000 7 Kernel Kernel 2 5 Ramdisk linuxrc.syno 0xFFC00000 0x80000 Copy kernel to RAM 1 8 8 4 Jump to kernel Disk /etc/rc Boot loader Ramdisk /etc/rc
Software Architecture Web Applications Management UI Network Service Synology SDK Library Linux Kernel, 2.6.15, 2.4.22 Disk Driver Network Driver USB Driver Synology HW driver
RAID 5 Read Performance Intel Celeron 3.2GHz Celeron M 1.5 GHz ARM 500 MHz ARM 500 MHz ARM 500 MHz
RAID 5 Read Performance Intel Celeron 3.2GHz Celeron M 1.5 GHz ARM 500 MHz PowerPC 266 MHz ARM 500 MHz
RAID 5 Read Performance • 40% faster then original Linux kernelFTP download from 26 MB/s to 37 MB/s • 1 year ahead to Linux kernel • How?
RAID 5 Read Performance • At least 3 disks • Allow 1 disk failure P 1 2 3 6 4 5 P 9 7 P 8 12 P 10 11
RAID 5 Read Performance Read buffer Memory copy Stripe Cache (Used to check data consistency) Memory copy P 1 2 3 6 4 5 P 9 7 P 8 12 P 10 11
Reduce Memory Copy • Download file for (;;) { cnt = read(file_fd, buf, sizeof(buf)); if (cnt <= 0) break; for (len = cnt, bp = buf; len > 0;) { cnt = write(sock_fd, bp, len); if (cnt < 0) error; len -= cnt; bp+=cnt; } }
Reduce Memory Copy User space daemon Kernel Disk read() memory copy write() Network memory copy
Reduce Memory Copy cnt = sendfile(sock_fd, file_fd, offset, filesize); User space daemon Kernel Disk sendfile() Network
Large Directory Handling • Windows uses case-insensitive • Unix/Linux is case-sensitive • How would Samba do to pretend it is case-insensitive? • Create/rename/delete/lookup
Large Directory Handling • Enumerate all files in the directory, convert file name to upper and do string compare! • What if there are more than 10,000 files in a directory?
Large Directory Handling • Modify EXT3 file system to be case-insensitive • Port EXT3 directory hash to 2.4 kernelopen() 10,000 files from 2mins to 10 sec
Competitive Cost • We are small company • NAS is a small market • Big companies get lower price because they can share parts between different products • How to compete? Software!!
Competitive Cost – Flash size • We use 2 MB or 4 MB flash • Our competitor uses 16 MB flash(or 512 KB flash and bundle disk) • Don't bundle disk to avoid the risk of disk price decline
Competitive Cost – Flash size • Use 2.4 kernelsmaller footprint, better performance, FTP 20% faster • Network installationThe ramdisk in flash provides minimize function for installation only
Competitive Cost – Power Supply • A 1TB Disk needs 40W • PC server uses 350W power supply, noisy, large • We use 100W adapter for 4 disk model, quiet, small • 100 W for 4 disk+PCB?
Competitive Cost – Power Supply • Disk spin up 35 W • Disk access 14 W • Disk idle 12 W • Disk hibernation 0 W • PCB 7~12 W • Power up sequence
Competitive Cost – Power Supply • Power up sequenceSoftware delay until disk ready, 40 seconds • How about hibernation?
Competitive Cost – Power Supply • Ask disk whether disk is hibernating before access it • When disk is hibernating and wake up the first disk • If other disks are waking up, put into queue to delay wake up • Extra command to ask status? Performance?
Quality - Reliability • Mass stress 12pic x 14days for every release • MP - Stress memory for 24 hours • MP - Stress with disk for 24 hours • Production cost: 4 disks x 100 pics • Production capacity: 100 per day
Quality – Software Dainty • Continuous free firmware upgrade • Take care on small details • File created time • Unicode conversion • Extended attribute • RAID error handling
Quality – RAID Error Handling • Read error? P 1 2 B 6 4 5 P 9 7 P 8 12 P 10 11
Quality – RAID Error Handling • Rewrite to leverage disk bad sector mapping P 1 2 B 6 4 5 P 9 7 P 8 12 P 10 11 3
Q&A • Yes, we are hiring