Teaching Code To Kids

I believe teaching coding to kids in any form is a benefit for them regardless of their career path.  It really exercises the brain and mind into solving problems in your mind and requires a lot of creativity.  If they can learn coding at a young age it is likely they will continue to learn well in other areas for the rest of their life.

I don’t know if there is a magic number of when to start but if a child is able to use a computer to play games, they are probably capable of being introduced.  I think it’s important to make it as a fun as possible and without too much pressure, which is obviously difficult at a younger age but part of getting them there is not just the coding, but if they start more advanced academics at a young age they are more likely to have the discipline to think things through.

A quick Google search makes it look like there is growing interest for kids and there are now platforms and services intended to help.

Another great thing about kids learning to code is that for children in impoverished areas of the world, who may have access to a computer can be on a level playing field.  In IT you work from almost anywhere in the world and your talent can be recognized.

Being an Expert on China’s Internet And Getting Ahead

After years of offering internet services in China a lot of our customers consider us experts on Chinese internet.  I’ve observed that on top of our typical IT consulting, that we’ve frequently been called on by firms as their consultant for all things internet in China.

In China the first thing people think of is regulations and rules and it often sounds more scary than it is or has to be.  Some firms have needlessly neglected the Chinese market over rules that may not even apply to their usage or simply over the concern of seeking an ICP license for hosting purposes (which is not all that hard if you have a presence in China).  Don’t get me wrong, like any country there are regulations to be followed and understood, but most of these are well-documented knowns.

The biggest challenge aside from the known regulatory issues in China is finding quality and reliable bandwidth, both locally (for within China) and overseas (outside China).  We get a lot of clients switching to us in China because they say our bandwidth is the fastest and most reliable.

A lot of people believe that a certain city or location guarantees their service will be slower or faster, but this is certainly not true whether you are on China Unicom or China Telecom.  There are some things I will agree with, however, which is that Telecom seems to have overall lower ping to most parts of the world.  But ping in China still does not guarantee better speeds for many different reasons and some circuits with higher ping have constantly outperformed to certain parts of the world.

There are many reasons why people have problems with the internet in China and I strongly believe one of the biggest factors is simply congestion.  Even in many parts of North America users can attest that the internet has been slow for them at some point over the years and it becomes obvious during summer months there is more usage.

Now imagine the same thing in China only with a population of nearly 1.4 billion people (2015) compared to all of North America’s 533million.  There is a high population density on most major centers of China and this is why home and office speeds have not been as fast as some other countries in Asia.

This is where I would always advise anyone who says “we want our servers only in Beijing and Shanghai” to think again.  You are going to be dealing with a lot of internet congestion at the local level, more firewall issues and the chance of disaster impacting major metropolitan areas is much higher.

Our course has been different from the start, we avoid congested city centers and find less used fiber and provision our circuits on that basis.  But it’s still not enough to rely on a certain area or even city.  We’ve tested dozens of circuits in some areas and found that at best a handful will have good speeds and many will still only be good within China.

To find the right mix it takes a lot of time, testing and travel in China and is why we’ve been so successful in helping our clients get ahead in China.

Internet in China is a constantly evolving and complex subject to say the least, and what may have been true days, or weeks ago may not be true anymore.  I always advise people that unless you have contacts in all parts of China and are willing to travel you absolutely must find a provider in China that is not restricted to a single area and is familiar with the networks strengths and weaknesses in all areas.

And last but not least, it’s about having the contacts to try and improve routing issues as 9/10 providers in China are not able or willing to respond to network issues on the backbone.

For those who are very serious about China they will often obtain servers with us on multiple Telecom and Unicom circuits in various areas of China.  This has consistently been a winning tactic for our clients for a long time.  The reason most clients want servers on China Telecom and China Unicom is simply not only for redundancy but for better connectivity as often the two providers have issues communicating.

I still feel it is not as entirely bad as some have expressed but it depends on the area.  As far as the backbone goes, usually as long as the Telecom and Unicom server are separated by a great distance things are less problematic.  But of course the issue is that consumer grade Telecom and Unicom is far different and is where the issues really come into play and necessitate the need for both providers, at least if serving the local market in China.

The above is really just some things we have seen in a nutshell but there is enough that goes on that would be enough to write a whole book on.

Dedicated Server Uptime Samples

I just logged into two random dedicated servers and I am always happy about the time uptimes we have:

13:05:37 up 960 days, 21 min,  1 user,  load average: 0.00, 0.01, 0.05

14:11:14 up 835 days, 18:01,  6 users,  load average: 0.09, 0.02, 0.01

In the case of both servers they have never been down, they were literally installed on a rack from the time shown above.

The reason our uptime is always fantastic is not only because our facilities being out of the core disaster areas.  We never overload or oversell our servers.  We are not a budget provider, but still offer excellent value in my opinion.  We’ve had a lot of clients switch to us from other hosts primarily based on the reasoning “no amount of features or gimmicks in the world matter if you have an unreliable service”.

 

My first 8TB Seagate Drive

Just for memories I kept the dmesg output of when I hotplugged this drive into my LSI Logic SAS2008 based card.  For those who are wondering any chipset that is 3TB capable will work fine for 8+ TB drives.  In fact I found if I plugged this drive into a chipset that didn’t support 3TB, not only did it not work but even most Linux machines just literally froze (I expected that the drive would just show itself as being 2TB but this was not the case).

The magic in Linux that happens when you hotplug this 8TB Seagate drive:

Jun  3 22:46:24 mybox kernel: [5110723.801829] scsi 6:0:0:0: Direct-Access     ATA      ST8000AS0002-1NA AR17 PQ: 0 ANSI: 6
Jun  3 22:46:24 mybox kernel: [5110723.801857] scsi 6:0:0:0: SATA: handle(0x0009), sas_addr(0x4433221107000000), phy(7), device_name(0x0000000000000000)
Jun  3 22:46:24 mybox kernel: [5110723.801866] scsi 6:0:0:0: SATA: enclosure_logical_id(0x500605b0079b94b0), slot(7)
Jun  3 22:46:24 mybox kernel: [5110723.801979] scsi 6:0:0:0: atapi(n), ncq(y), asyn_notify(n), smart(y), fua(y), sw_preserve(y)
Jun  3 22:46:24 mybox kernel: [5110723.801988] scsi 6:0:0:0: qdepth(32), tagged(1), simple(0), ordered(0), scsi_level(7), cmd_que(1)
Jun  3 22:46:24 mybox kernel: [5110723.805791] sd 6:0:0:0: Attached scsi generic sg7 type 0
Jun  3 22:46:24 mybox kernel: [5110723.806349] sd 6:0:0:0: [sdg] 15628053168 512-byte logical blocks: (8.00 TB/7.27 TiB)
Jun  3 22:46:24 mybox kernel: [5110723.806362] sd 6:0:0:0: [sdg] 4096-byte physical blocks
Jun  3 22:46:24 mybox kernel: [5110723.950714] sd 6:0:0:0: [sdg] Write Protect is off
Jun  3 22:46:24 mybox kernel: [5110723.950730] sd 6:0:0:0: [sdg] Mode Sense: 7f 00 10 08
Jun  3 22:46:24 mybox kernel: [5110723.952804] sd 6:0:0:0: [sdg] Write cache: enabled, read cache: enabled, supports DPO and FUA
Jun  3 22:46:24 mybox kernel: [5110724.116071]  sdg: unknown partition table
Jun  3 22:46:24 mybox kernel: [5110724.281364] sd 6:0:0:0: [sdg] Attached SCSI disk

Oops I used fdisk, but it can’t support an 8TB disk so instead use gdisk
sudo fdisk /dev/sdg

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x9f3ad455.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: The size of this disk is 8.0 TB (8001563222016 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sdg: 8001.6 GB, 8001563222016 bytes
255 heads, 63 sectors/track, 972801 cylinders, total 15628053168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9f3ad455

Device Boot      Start         End      Blocks   Id  System

Command (m for help): q

gdisk supports 3TB+ drives no problem and the interface is the same as fdisk:
sudo fdisk /dev/sdg

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x9f3ad455.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: The size of this disk is 8.0 TB (8001563222016 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sdg: 8001.6 GB, 8001563222016 bytes
255 heads, 63 sectors/track, 972801 cylinders, total 15628053168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9f3ad455

Device Boot      Start         End      Blocks   Id  System

Command (m for help): q
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries.

Command (? for help): p
Disk /dev/sdg: 15628053168 sectors, 7.3 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 99C74283-3F66-4AEB-B427-210253274010
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15628053134
Partitions will be aligned on 2048-sector boundaries
Total free space is 15628053101 sectors (7.3 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Command (? for help): n
Partition number (1-128, default 1): p
First sector (34-15628053134, default = 2048) or {+-}size{KMGTP}: 1
First sector (34-15628053134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-15628053134, default = 15628053134) or {+-}size{KMGTP}:
Current type is ‘Linux filesystem’
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
7501 IBM GPFS              7f00 ChromeOS kernel       7f01 ChromeOS root
7f02 ChromeOS reserved     8200 Linux swap            8300 Linux filesystem
8301 Linux reserved        8302 Linux /home           8400 Intel Rapid Start
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS
a585 Midnight BSD Vinum    a800 Apple UFS             a901 NetBSD swap
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline
af03 Apple label           af04 AppleTV recovery      af05 Apple Core Storage
be00 Solaris boot          bf00 Solaris root          bf01 Solaris /usr & Mac Z
bf02 Solaris swap          bf03 Solaris backup        bf04 Solaris /var
bf05 Solaris /home         bf06 Solaris alternate se  bf07 Solaris Reserved 1
bf08 Solaris Reserved 2    bf09 Solaris Reserved 3    bf0a Solaris Reserved 4
bf0b Solaris Reserved 5    c001 HP-UX data            c002 HP-UX service
ea00 Freedesktop $BOOT     eb00 Haiku BFS             ed00 Sony system partitio
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition
Press the <Enter> key to see more codes: fd
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300): p
Hex code or GUID (L to show codes, Enter = 8300): w
Hex code or GUID (L to show codes, Enter = 8300): q
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to ‘Linux filesystem’

Command (? for help): p
Disk /dev/sdg: 15628053168 sectors, 7.3 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 99C74283-3F66-4AEB-B427-210253274010
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15628053134
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     15628053134   7.3 TiB     8300  Linux filesystem

Command (? for help): wq

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdg.
The operation has completed successfully.

After exiting gdisk I do a quick and basic read performance test but find it strikingly accurate of all the disks I’ve tested:

Read performance of 196MB/s was far greater than

userlogin@mybox:~$ sudo dd if=/dev/sdg of=/dev/null bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 53.3865 s, 196 MB/s

sudo mdadm –create /dev/md8 –level 10 –raid-devices=2 missing /dev/sdg1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md8 started.
one@Opteron2419:~/Downloads$ cat /proc/mdstat
Personalities : [raid1] [raid10] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
md8 : active raid10 sdg1[1]
7813894144 blocks super 1.2 2 near-copies [2/1] [_U]

md125 : active (auto-read-only) raid1 sdd2[1] sdc2[0]
20490816 blocks [2/2] [UU]

md126 : active (auto-read-only) raid1 sdd1[0] sdc1[1]
943730240 blocks [2/2] [UU]

md127 : active raid10 sdf1[2] sde1[0]
732442112 blocks super 1.2 2 near-copies [2/2] [UU]

md2 : active raid10 sda3[2] sdb3[0]
709372928 blocks super 1.2 512K chunks 2 far-copies [2/2] [UU]
bitmap: 5/6 pages [20KB], 65536KB chunk

md0 : active raid1 sda1[2] sdb1[0]
20955008 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[1] sdb2[0]
2097088 blocks [2/2] [UU]

unused devices: <none>
one@Opteron2419:~/Downloads$ pvcreate /dev/md8
/dev/mapper/control: open failed: Permission denied
Failure to communicate with kernel device-mapper driver.
WARNING: Running as a non-root user. Functionality may be unavailable.
Device /dev/md8 not found (or ignored by filtering).
one@Opteron2419:~/Downloads$ sudo pvcreate /dev/md8
Physical volume “/dev/md8” successfully created
one@Opteron2419:~/Downloads$ sudo vgcreate backups /dev/md8
Volume group “backups” successfully created
one@Opteron2419:~/Downloads$ vgdisplay
/dev/mapper/control: open failed: Permission denied
Failure to communicate with kernel device-mapper driver.
WARNING: Running as a non-root user. Functionality may be unavailable.
No volume groups found
one@Opteron2419:~/Downloads$ sudo vgdisplay
— Volume group —
VG Name               backups
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               7.28 TiB
PE Size               4.00 MiB
Total PE              1907688
Alloc PE / Size       0 / 0
Free  PE / Size       1907688 / 7.28 TiB
VG UUID               DwxSxL-UmcV-TyjM-TUa1-ef4w-lrK5-cipxiI

one@Opteron2419:~/Downloads$ sudo mkdir /mnt/md8
one@Opteron2419:~/Downloads$ sudo vi /etc/fstab
one@Opteron2419:~/Downloads$ sudo mkfs.ext
mkfs.ext2     mkfs.ext3     mkfs.ext4     mkfs.ext4dev
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/b
block/         bsg/           btrfs-control  bus/
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/b
block/         bsg/           btrfs-control  bus/
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/block/
1:0    1:11   1:15   1:5    1:9    7:0    7:4    8:0    8:18   8:32   8:48   8:64   8:96   9:125  9:8
1:1    1:12   1:2    1:6    259:0  7:1    7:5    8:1    8:19   8:33   8:49   8:65   8:97   9:126
1:10   1:13   1:3    1:7    259:1  7:2    7:6    8:16   8:2    8:34   8:50   8:80   9:0    9:127
11:0   1:14   1:4    1:8    259:2  7:3    7:7    8:17   8:3    8:35   8:51   8:81   9:1    9:2
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/
Display all 249 possibilities? (y or n)
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/
Display all 249 possibilities? (y or n)
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/b
block/         bsg/           btrfs-control  bus/
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/lv^C
one@Opteron2419:~/Downloads$ sudo lvcreate -L 7.28TB backups -n backuplv
Rounding up size to full physical extent 7.28 TiB
Volume group “backups” has insufficient free space (1907688 extents): 1908409 required.
one@Opteron2419:~/Downloads$ sudo lvcreate -L 7.2TB backups -n backuplv
Rounding up size to full physical extent 7.20 TiB
Logical volume “backuplv” created
one@Opteron2419:~/Downloads$ sudo lvcreate -L 7.26TB backups -n backuplv
Rounding up size to full physical extent 7.26 TiB
Logical volume “backuplv” already exists in volume group “backups”
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/b
backups/       block/         bsg/           btrfs-control  bus/
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/b
backups/       block/         bsg/           btrfs-control  bus/
one@Opteron2419:~/Downloads$ sudo mkfs.ext4 /dev/backups/backuplv
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=128 blocks
241594368 inodes, 1932735488 blocks
96636774 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
58983 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

sudo smartctl -a /dev/sdg
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.16.0-38-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST8000AS0002-1NA17Z
Serial Number:    Z840F70X
LU WWN Device Id: 5 000c50 090ae82a1
Firmware Version: AR17
User Capacity:    8,001,563,222,016 bytes [8.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5980 rpm
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Jun  3 23:08:40 2016 PDT
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection:         (    0) seconds.
Offline data collection
capabilities:              (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   1) minutes.
Extended self-test routine
recommended polling time:      ( 953) minutes.
Conveyance self-test routine
recommended polling time:      (   2) minutes.
SCT capabilities:            (0x30b5)    SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x000f   112   100   006    Pre-fail  Always       –       48250328
3 Spin_Up_Time            0x0003   098   098   000    Pre-fail  Always       –       0
4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       –       2
5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       –       0
7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       –       29055
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       –       0
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       –       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       –       2
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       –       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       –       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       –       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       –       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       –       0
190 Airflow_Temperature_Cel 0x0022   063   063   045    Old_age   Always       –       37 (Min/Max 29/37)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       –       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       –       1
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       –       2
194 Temperature_Celsius     0x0022   037   040   000    Old_age   Always       –       37 (0 21 0 0 0)
195 Hardware_ECC_Recovered  0x001a   112   100   000    Old_age   Always       –       48250328
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       –       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      –       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       –       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      –       170162309300224
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      –       406660
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      –       20496814

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
1        0        0  Not_testing
2        0        0  Not_testing
3        0        0  Not_testing
4        0        0  Not_testing
5        0        0  Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

one@Opteron2419:~/Downloads$ sudo smartctl -a /dev/sdg
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.16.0-38-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST8000AS0002-1NA17Z
Serial Number:    Z840F70X
LU WWN Device Id: 5 000c50 090ae82a1
Firmware Version: AR17
User Capacity:    8,001,563,222,016 bytes [8.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5980 rpm
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Jun  3 23:08:43 2016 PDT
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection:         (    0) seconds.
Offline data collection
capabilities:              (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   1) minutes.
Extended self-test routine
recommended polling time:      ( 953) minutes.
Conveyance self-test routine
recommended polling time:      (   2) minutes.
SCT capabilities:            (0x30b5)    SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x000f   112   100   006    Pre-fail  Always       –       48382752
3 Spin_Up_Time            0x0003   098   098   000    Pre-fail  Always       –       0
4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       –       2
5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       –       0
7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       –       29186
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       –       0
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       –       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       –       2
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       –       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       –       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       –       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       –       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       –       0
190 Airflow_Temperature_Cel 0x0022   063   063   045    Old_age   Always       –       37 (Min/Max 29/37)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       –       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       –       1
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       –       2
194 Temperature_Celsius     0x0022   037   040   000    Old_age   Always       –       37 (0 21 0 0 0)
195 Hardware_ECC_Recovered  0x001a   112   100   000    Old_age   Always       –       48382752
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       –       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      –       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       –       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      –       182961311842304
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      –       410761
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      –       20496814

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
1        0        0  Not_testing
2        0        0  Not_testing
3        0        0  Not_testing
4        0        0  Not_testing
5        0        0  Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

sudo badblocks /dev/backups/backuplv
badblocks: Value too large for defined data type invalid end block (7730941952): must be 32-bit value

How To Make Your Office IT/Computer Hardware More Green

As part of doing my part for the environment I consolidated a lot of other server/computer hardware in my office into a low-power, quiet and cool running Dedicated AMD Opteron Desktop Workstation Server from scratch.  It has kept my office cooler and quieter, all while saving on power and more importantly the environment.  I should have added that I also reduced the number of hard disks from several if not dozens in my office, to just 6 disks (all of them larger I believe 4-8TB each).

But I wanted to take it a step further and I admit I was also motivated each morning by the unfriendly smells of burning PCB no matter what I did.  It’s an exercise in efficiency, savings, environment and your own health and sanity.

In my office I have a gigabit 24-port rack mount switch and 42U server rack where I store parts and other items for testing and development.  Believe it or not but this switch seems to have made an incredible amount of heat and even worse, the burning PCB smell which can’t be healthy and it still baffles me because its fan is working just fine and the unit doesn’t get that hot.

This is where the waste part came in, the thing is that under my Desk I have a small gigabit switch for all of my other devices such as VOIP, phone, printer, laptop, etc… and the 24-port switch only has 4 or 5 ports active.  I’ve kept the 24-port on the rack and ready to plug in and I just switched in a humble but efficient 5-port gigabit switch which has reduced heat and the bad PCB smell in the office.

One thing I admit that I have done (or rather haven’t) is enabled any kind of sleep mode for my Desktop workstation and this is because it is nearly always active and I like to remotely connect to it at odd times of the day.  But still this current Opteron workstation runs cooler than my previous labyrinth of servers and workstations that were active so I can actually hear again.  By consolidating most services into a single unit with virtual servers you can often eliminate the majority of power usage which primarily comes from hot and power hungry CPUs.  This is one reason why I haven’t upgraded to newer Opteron architecture, yes you get more cores per CPU but the power usage ends up being more than what I am into now and is no more efficient and far exceeds my current needs.

Personal Best Hosting Advice for Shared, VPS and Dedicated Servers

Since one of our product offerings is offering hosting I’m often asked by friends and family which company they should use and where they should host, and which host is the best for their shared hosting, VPS or Dedicated Server.

Surprising to some the answer is not always, host with compevo but based on their actual needs and goals.   If someone needs to host their site in Australia or another location we do not offer, I’m not going to suggest they host elsewhere unless there is a good reason or actual business case for it, or if they have a niche we don’t cover, I always recommend they find a niche provider for their industry and usually the company I recommend will not be the typical one most have heard of.

The biggest issue I find trying to help people is getting friends and family to understand what they need and to get the actual requirements from them.  In the case that they can’t describe what they want then I’ll try to guide them.

For example I have a friend from Australia who has clients that are mainly from North America and Europe but said he wanted to host in Australia.  I told him not to host in Australia as things tend to load a bit slower to most areas from Australia as its not on a main fiber route (eg. multiple routes with lots of traffic transiting since Australia is isolated by the ocean and has no other country physically connected to it).  It would only make sense to host in Australia if most of your clientel were from Australia.  I suggested he host in North America because it was a middle ground compared to Europe, specifically the mid or east which can provide low ping to most of Europe (in many cases around 100ms), and yet Asia and the rest of the world has excellent connectivity here too.

What surprises me about the questions I get is that a lot of people incorrectly assume they need a powerhouse of a server with loads of RAM to host their website.  Unless you have a large amount of traffic that’s not going to be an issue for most sites so I try to save them money.  In a case like the above I would normally recommend a VPS in Canada or the US as long as privacy is not a primary concern.  If data security and privacy is of the utmost concern I usually recommend Hong Kong, China or Russia depending on the type of the business and if it has fierce competitors in the region it will be hosting.

Depending on what they are after and what they need,when I recommend compevo here’s where I’ve usually sent them:

compevo.cn for VPS in Hong Kong, China, Singapore and Dedicated Servers in China

compevo.com for VPS in Hong Kong near Mainland China

compevo.com Dedicated Servers on Linux and Windows in the USA with premium bandwidth

 

Windows VPS Server 2008/2012 VPS (Virtual Private Server) are too RAM intensive

I’ll let the image for this post do the talking.  It is a freshly installed Windows 2008 R2 Datacenter VPS that I quickly provisioned in my test lab (for testing :)).  The only thing installed was ClamAV/ClamWIN and Firefox was open with a single tab.

However the memory usage itself was coming from something less obvious.  This server boots up and initially uses “697MB” of RAM (quite hefty in my opinion at least compared to the lightweight world of Linux).  From that point it only goes downhill in terms of memory usage.

The memory usage ballooned quickly to nearly 1.2GB and was steadily climbing all because of Windows Update doing updates.

This is staggering because many VPS Plans and providers will allow you to run Windows 2008 Server on as little as 512MB of RAM and as we can see below 1GB of RAM isn’t even enough.  In fact it could be argued that the real minimum is probably at least 2GB for basic usage (which I define here is just running Windows Update!).

Windows poses unique challenges for virtualization environments and hosts because even a single Windows VPS will start swapping easily with less than 2GB of RAM.  The problem with swapping of course is high and constant disk IO/bandwidth being consumed by a single VPS.

As shown in the pic above it doesn’t take much to get into high RAM usage territory and is also likely why some feel Windows does not run well in a virtual environment.  In my experience it runs lightning fast and at bare-metal speed but it won’t seem that way if someone tries running it with less than 2GB of RAM.

OpenBSD Install Howto Guided Experience

Download the OpenBSD 5.8 x64 install .iso from compevo mirror

Just a note that on KVM OpenBSD runs very slow in terms of disk access for some reason (it takes forever to even format the partitions).

Any BSD is in my opinion one of the most reliable operating system period and one of the most secure, and OpenBSD is no exception.

It does not have a fancy installer but is dead, simple and minimalist, it’s about efficiency, security and stability first.

Boot the OpenBSD ISO

OpenBSD-Install-1

Press I for install or A for auto install

I recommend I because the install fails straight away if no DHCP lease is detected (very common in many remote environments or datacenters of course).

OpenBSD-Install-2

So make sure you press I for normal install

Choose your hostname

OpenBSD-Install-3

Configure more options

OpenBSD-Install-4

Partition Layout

OpenBSD-Install-5

OpenBSD-Install-6

 

OpenBSD-Install-7

 

OpenBSD-Install-9

OpenBSD-Install-10

Will the PC and Server Based computing become obsolete?

There has been much debate over the years and it’s easy to see there is a lot of momentum and gravitation towards smart phones and tablets because they are convenient and are capable of many things a PC is.

The stats show the following trends in my opinion: http://www.statista.com/statistics/272595/global-shipments-forecast-for-tablets-laptops-and-desktop-pcs/

The laptop market peaked in 2011 at 209 million units and is projected to be 170.4 million in 2019.

The laptop PC market peaked on or before 2010 at 201 million units and is projected to be 170.4million in 2019.

Tablets have had amazing growth from 19 million units in 2010 to 269.4 million projected in 2019 with a peak of 407million projected in 2017.

The numbers of PCs and Desktops show some variation but are not an immediate indication that people will stop buying them.  Certainly the tablet market has probably eaten into some of the laptop market.  If anything the largest drop or decline is being forecast for the tablet market.  I think part of the reason sales are slowing in the PC market is not because people are not using them, but quite honestly even old computers are capable of doing most tasks people want them to so there may be no need to upgrade.

With that said, I believe most professionals will still prefer a PC for many uses.  Personally speaking I can get a lot more done, more quickly with a PC.  I also feel PC’s are more secure than smart phones because with the phones, we never know what is in the ROMs or what potential security flaws are waiting for us.

When using a Unix based open-source PC there is reasonable assurance to privacy and security compared to a tablet.

The server side is something that is not only, not declining but growing and ironically this demand is being fed by a lot  of smartphone users putting their data into Cloud based services.  Datacenter services have not fundamentally changed in a long time, there have been experiments in cooling and green options but whatever the improvements and format, server based computing is here to stay long into the future.

PC based computing does appear to be on the decline and may continue to decline as more and more new generations grow up almost exclusively on an iOS or Android device.  However I do not think it will ever disappear in the foreseeable future and the server side has a long way to go.

Rebooting a Linux Dedicated server with no hard drives from the shell

I just thought I would finally test this so I simulated a complete RAID array failure by pulling all of the drives at once.

This results in an input/output error when trying to do anything so the question is can you still reboot in this situation?

[root@testserver /]# reboot
-bash: /sbin/reboot: Input/output error
[root@testserver /]# shutdown -rn now
-bash: /sbin/shutdown: Input/output error
[root@testserver /]# shutdown
-bash: /sbin/shutdown: Input/output error
[root@testserver /]# uptime
13:47:10 up 41 min,  1 user,  load average: 0.00, 0.00, 0.00

Reboot by sending commands directly to /proc

[root@testserver /]# echo 1 > /proc/sys/kernel/sysrq
[root@testserver /]# echo b > /proc/sysrq-trigger

And sure enough the server rebooted, it could be handy if someone has a remote server without remote hands or remote-reboot (in this case we have both on-site so there was no risk and this was a test server).

What dmesg looks like when the drives are removed and arrays degraded:
[  559.302943] ata3: exception Emask 0x10 SAct 0x0 SErr 0x1810000 action 0xe frozen
[  559.302988] ata3: SError: { PHYRdyChg LinkSeq TrStaTrns }
[  559.303048] ata3: hard resetting link
[  559.303054] ata3: nv: skipping hardreset on occupied port
[  560.024048] ata3: SATA link down (SStatus 0 SControl 300)
[  565.024048] ata3: hard resetting link
[  565.024054] ata3: nv: skipping hardreset on occupied port
[  565.327053] ata3: SATA link down (SStatus 0 SControl 300)
[  565.327064] ata3: limiting SATA link speed to 1.5 Gbps
[  570.327045] ata3: hard resetting link
[  570.327050] ata3: nv: skipping hardreset on occupied port
[  570.630048] ata3: SATA link down (SStatus 0 SControl 300)
[  570.630059] ata3.00: disabled
[  570.630078] ata3: EH complete
[  570.630087] sd 2:0:0:0: rejecting I/O to offline device
[  570.630104] ata3.00: detaching (SCSI 2:0:0:0)
[  570.630125] sd 2:0:0:0: [sda] killing request
[  570.630153] md: super_written gets error=-5, uptodate=0
[  570.630159] md/raid10:md2: Disk failure on sda2, disabling device.
[  570.630162] md/raid10:md2: Operation continuing on 1 devices.
[  570.630257] end_request: I/O error, dev sda, sector 58605128
[  570.630291] md: super_written gets error=-5, uptodate=0
[  570.633517] sd 2:0:0:0: [sda] Synchronizing SCSI cache
[  570.633651] sd 2:0:0:0: [sda]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[  570.633659] sd 2:0:0:0: [sda] Stopping disk
[  570.633680] sd 2:0:0:0: [sda] START_STOP FAILED
[  570.633684] sd 2:0:0:0: [sda]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[  570.655206] RAID10 conf printout:
[  570.655210]  — wd:1 rd:2
[  570.655214]  disk 0, wo:0, o:1, dev:sdb2
[  570.655217]  disk 1, wo:1, o:0, dev:sda2
[  570.659025] RAID10 conf printout:
[  570.659029]  — wd:1 rd:2
[  570.659032]  disk 0, wo:0, o:1, dev:sdb2
[  570.659313] md: md1 still in use.
[  570.738752] md: md2 still in use.
[  570.739106] md/raid1:md1: Disk failure on sda3, disabling device.
[  570.739109] md/raid1:md1: Operation continuing on 1 devices.
[  570.739380] md/raid10:md0: Disk failure on sda1, disabling device.
[  570.739382] md/raid10:md0: Operation continuing on 1 devices.
[  570.739412] md: unbind<sda2>
[  570.747449] md: export_rdev(sda2)
[  570.868144] RAID1 conf printout:
[  570.868148]  — wd:1 rd:2
[  570.868168]  disk 0, wo:0, o:1, dev:sdb3
[  570.868175]  disk 1, wo:1, o:0, dev:sda3
[  570.873025] RAID1 conf printout:
[  570.873029]  — wd:1 rd:2
[  570.873032]  disk 0, wo:0, o:1, dev:sdb3
[  570.999292] md: unbind<sda3>
[  571.007119] md: export_rdev(sda3)
[  573.633246] ata4: exception Emask 0x10 SAct 0x0 SErr 0x1810000 action 0xe frozen
[  573.633292] ata4: SError: { PHYRdyChg LinkSeq TrStaTrns }
[  573.633331] ata4: hard resetting link
[  573.633335] ata4: nv: skipping hardreset on occupied port
[  574.354052] ata4: SATA link down (SStatus 0 SControl 300)
[  579.354032] ata4: hard resetting link
[  579.354037] ata4: nv: skipping hardreset on occupied port
[  579.657041] ata4: SATA link down (SStatus 0 SControl 300)
[  579.657052] ata4: limiting SATA link speed to 1.5 Gbps
[  584.657032] ata4: hard resetting link
[  584.657038] ata4: nv: skipping hardreset on occupied port
[  584.960047] ata4: SATA link down (SStatus 0 SControl 300)
[  584.960058] ata4.00: disabled
[  584.960076] ata4: EH complete
[  584.960086] sd 3:0:0:0: rejecting I/O to offline device
[  584.960094] ata4.00: detaching (SCSI 3:0:0:0)
[  584.960124] sd 3:0:0:0: [sdb] killing request
[  584.960148] md: super_written gets error=-5, uptodate=0
[  584.960220] end_request: I/O error, dev sdb, sector 58605120
[  584.960265] md: super_written gets error=-5, uptodate=0
[  584.960322] end_request: I/O error, dev sdb, sector 58605128
[  584.960357] md: super_written gets error=-5, uptodate=0
[  584.960393] end_request: I/O error, dev sdb, sector 58605128
[  584.960428] md: super_written gets error=-5, uptodate=0
[  584.962495] sd 3:0:0:0: [sdb] Synchronizing SCSI cache
[  584.962765] sd 3:0:0:0: [sdb]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[  584.962772] sd 3:0:0:0: [sdb] Stopping disk
[  584.962786] Buffer I/O error on device md2, logical block 524292
[  584.962805] sd 3:0:0:0: [sdb] START_STOP FAILED
[  584.962810] sd 3:0:0:0: [sdb]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[  584.962824] lost page write due to I/O error on md2
[  584.962841] end_request: I/O error, dev sdb, sector 58605128
[  584.962877] md: super_written gets error=-5, uptodate=0
[  584.962921] md: md1 still in use.
[  584.962931] Buffer I/O error on device md2, logical block 524293
[  584.963007] lost page write due to I/O error on md2
[  584.963020] Buffer I/O error on device md2, logical block 1048646
[  584.963095] lost page write due to I/O error on md2
[  584.963104] Buffer I/O error on device md2, logical block 1048647
[  584.963179] lost page write due to I/O error on md2
[  584.963188] Buffer I/O error on device md2, logical block 1048648
[  584.963274] lost page write due to I/O error on md2
[  584.963280] md: md2 still in use.
[  584.963299] Buffer I/O error on device md2, logical block 1048694
[  584.963381] lost page write due to I/O error on md2
[  584.963391] Buffer I/O error on device md2, logical block 1056863
[  584.963468] lost page write due to I/O error on md2
[  584.963478] Buffer I/O error on device md2, logical block 1056864
[  584.963553] lost page write due to I/O error on md2
[  584.963562] Buffer I/O error on device md2, logical block 6299690
[  584.963635] lost page write due to I/O error on md2
[  584.963800] Aborting journal on device md2-8.
[  584.963836] EXT4-fs error (device md2) in ext4_delete_inode: Readonly filesystem
[  584.963868] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 987 pages, ino 28972747; err -30
[  584.963877] md: super_written gets error=-19, uptodate=0
[  584.963883]
[  584.963888] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 7896 pages, ino 28972690; err -30
[  584.963893]
[  584.963953] EXT4-fs warning (device md2): ext4_end_bio: I/O error writing to inode 28972747 (size 36864 starting block 689771)
[  584.964303] JBD2: I/O error detected when updating journal superblock for md2-8.
[  584.964309] EXT4-fs error (device md2): ext4_journal_start_sb: Detected aborted journal
[  584.964316] EXT4-fs (md2): Remounting filesystem read-only
[  584.972785] md0: detected capacity change from 30005002240 to 0
[  584.972794] md: md0 stopped.
[  584.972810] md: unbind<sdb1>
[  584.979298] md: export_rdev(sdb1)
[  584.979344] md: unbind<sda1>
[  584.987280] md: export_rdev(sda1)
[  585.165084] md: super_written gets error=-19, uptodate=0
[  585.165102] md: super_written gets error=-19, uptodate=0
[  589.309845] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  589.963162] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 263495; err -30
[  589.963314]
[  599.310238] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  604.963046] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 262464; err -30
[  604.963153]
[  609.310592] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  614.963071] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 28186168; err -30
[  614.963176]
[  614.963181] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28186171; err -30
[  614.963298]
[  614.963301] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28972747; err -30
[  614.963405]
[  614.963408] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28972690; err -30
[  614.963507]
[  619.310906] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  619.963133] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 263495; err -30
[  619.963244]
[  629.311267] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  634.963038] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 262464; err -30
[  634.963144]
[  639.311561] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  644.963069] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 28186168; err -30
[  644.963172]
[  644.963176] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28186171; err -30
[  644.963288]
[  644.963291] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28972747; err -30
[  644.963395]
[  644.963397] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 8192 pages, ino 28972690; err -30
[  644.963499]
[  649.311846] EXT4-fs error (device md2): ext4_find_entry: reading directory #262476 offset 0
[  649.963202] EXT4-fs (md2): ext4_da_writepages: jbd2_start: 1024 pages, ino 263495; err -30
[  649.963319]
[  653.202216] ata3: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0xe frozen
[  653.202317] ata3: SError: { PHYRdyChg CommWake }
[  653.202379] ata3: hard resetting link