Backup Speed Comparison of Seagate Expansion 4TB Portable External Hard Drive USB 3.0 (STEA4000400) vs. Toshiba Canvio Basics 3TB Portable Hard Drive (HDTB330XK3CA)
The 4TB Seagate STEA4000400 (sgt4tb) was delivered in 02-Apr-2016. Before first use, I wanted to write to all sectors of the drive and decided to use the (drive's internal) low level 'security erase' (function) of the 'hdparm' tool. It ran about 12 hours***. The CPU remains inactive during this operation. The smart data read error rate value remains unchanged.
Security erase writes to all sectors, not only those in use to reflect the reported capacity. It is even more low level than completely formatting the drive. (be careful not to interrupt this process otherwise the disk becomes unusable. low level erase only to be used by experts.)
I used hparam's secure erase to write to all sectors since with f3write the write speed goes down from an initial average above 60 MB/s to less than a tenth of that after few hundred GB had been written. The reason might be that f3write uses small write blocks. dd (disk-to-disk) writing /dev/zero or /dev/random also slowed down with sgt4tb after a while even when using large buffer size. I didn't care to research this further since neither f3write nor dd write all sectors anyway.
Here's the p (print) command output of the $ gdisk tool:
Disk /dev/sdb: 7814037167 sectors, 3.6 TiB Logical sector size: 512 bytes Disk identifier (GUID): FF8FF2AD-31F7-45B7-8D3F-463B660E0AA2 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 7814037133 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 7814037133 3.6 TiB 8300 s4t1The HD has GUID partition table (GPT) and ext4 file system. With this configuration, the read speed is
$ sudo hdparm -tT /dev/sdb /dev/sdb: Timing cached reads: 2882 MB in 2.00 seconds = 1441.90 MB/sec Timing buffered disk reads: 232 MB in 3.01 seconds = 76.98 MB/sec the write speeds with 1 MiB buffer size: 168 MB/s $ dd if=/dev/zero of=/dev/sdb1 bs=1M count=1024! (1 GB data) 111 MB/s $ dd if=/dev/zero of=/dev/sdb1 bs=1M count=10240! (10 GB data)These read/write speed results were obtained using an USB 3.0 adapter (USB 3.0 Express Card 54mm Adapter NEC Chipset Renesas uPD720202) in express slot in Express slot on a notebook with usb2 only.
The read/write benchmarks results obtained below are using a LUKS/LVM encrypted disk, similar to Full disk encryption with LUKS (including /boot) apart from using 'gdisk' instead of 'parted.' The latter can't create a GUID Partition Table (GPT) as required by LVM and for disk volumes above 2TB capacity. Though this is not a disk encryption guide, the following commands show which encryption method is used and the logical volumes layout.
The read/write speed for encrypted devices depends on both CPU speed and encryption method. It is adviced to chose the fastest (of the safest) of the latter according to results of cipher benchmark on your computer. ($ cryptsetup benchmark # requires the latest version of cryptsetup; the one in the ubuntu 12.04 LTS repository doesn't know action 'benchmark', see http://pastebin.com/9uUKricz or use arch linux instead of Ubuntu.)
[Update 09-Mar-2017: Links to installation guide added and command sequence amended]
Here's how the sgt4tb partitions (LVM on LUKS) were setup; it's just a sketch and not a guide for disk partitioning / formatting.
For more details on the latter, see e.g.
Full disk encryption with LUKS (including /boot) by Pavel Kogan),
GPT LUKS LVM Arch Install Guide 2016 by pavornoc,
Minimal instructions for installing arch linux on an UEFI system (with full system encryption using dm-crypt and luks) by mattiaslundberg, and for non-uefi
Install Arch Linux on Encrypted LVM by mattiaslundberg.
$ # Such large capacity devices require use of GPT fdisk # # Attention: replace 'sdb' and 'sdb1' below by the actual device name of your USB disk $ gdisk /dev/sdb # p Print current table # o New GPT table # y Confirm # n New partition # 1 Partition number # [enter] accept default # [enter] accept default # w Write partition table # y Confirm # q Quit $ cryptsetup luksFormat --hash=sha512 --key-size=256 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb1 $ cryptsetup luksOpen /dev/sdb1 lvm $ pvcreate --dataalignment 1m /dev/mapper/lvm $ vgcreate vg /dev/mapper/lvm # # We also create swap and root in case we want to make disk bootable later: $ lvcreate -L 16G vg -n swap $ lvcreate -L 32G vg -n root # $ # use 98% instead of 100% if you want room to provide for snapshots later $ lvcreate -l +98%FREE vg -n home # $ mkfs.ext4 /dev/mapper/vg-root $ mkswap -L swap /dev/mapper/vg-swap $ mkfs.ext4 /dev/mapper/vg-home # # Linux reserves around 5% of the disk space to allow operations # to continue when disk is full. This is only usefull for root partitions. # So we claim to make available all free space for home partition: $ tune2fs -m 0 /dev/mapper/vg-home # # prepare mounting home: $ mkdir /media/sgt4tb $ mount /dev/mapper/vg-home /media/sgt4tbFor the pvcreate , mkfs, and mount commands, in case of SSD, see http://pof.eslack.org/2013/01/12/ssd-alignment-on-linux-with-ext4-and-lvm/
2 TB Data Backup Timing Comparison of 3TB Toshiba canvio basics (tcb3tb) vs. 4TB Seagate STEA4000400 (sgt4tb)
The data on the source drive WD my passport ultra 2tb (wdu2tb) consist of many tiny files, majority of files between 10 and 20 MB (jpg, orf(raw)), and a few big files up-to 80GB.