My article on FreeBSD CTL High Availability and ALUA functions is shown on BSD Now TV!

In the issue #165 of BSD Now two awesome guys, Allan Jude and Kris Moore, show my paper while explaining FreeBSD CTL HA and ALUA subsystem.

Posted in BeaST, Storage | Tagged , , , , , , , , , , | 1 Comment

Setting memory size for Hitachi Command Suite CLI (HICommandCLI)

When running CLI for Hitachi Command Suit (HICommandCLI.sh in UNIX or HICommandCLI.bat in Windows) we sometimes get this type of error:

KAIC90574-E The memory for the CLI became insufficient while this operation was being performed

Command Suite CLI is actually a Java application, and this error means that the default size of memory heap (256M or 512M according to Hitachi Command Suite CLI Reference Guide, MK-90HC176-19) is not enough to keep the data we have requested. Usually it happens while running requests with GetStorageArray, GetLogicalGroup and GetHostInfo commands on Command Suite servers with many large arrays registered in.

It’s obvious we must somehow increase the memory size in this case. Hitachi Command Suite CLI Reference Guide advises us to change HDVM_CLI_MEM_SIZE variable. And there are two possible ways of doing it: edit HICommandCLI script or set the environmental variable. But the Reference guide convinces us not to edit the script as any CLI reinstallation will erase our changes in the HICommandCLI. Continue reading

Posted in Storage, Tips & tricks | Tagged , , , , , , , | Leave a comment

Brocade Communications in Advanced Talks to Sell Itself – Bloomberg

logo-brocade-black-red-rgb-thumbnailBrocade Communications Systems Inc. is in advanced talks to sell itself, according to people familiar with the matter.

Source: Brocade Communications in Advanced Talks to Sell Itself – Bloomberg

UPD. Broadcom Press-release on the deal is already published.

Posted in Copy-paste, Storage | Tagged , , , | Leave a comment

Structure size optimization in C

Did you ever noticed the order of members in the data structures affects the whole size of the structure in C language? For example, if you define this T1 structure:

typedef struct {
char a; /* 1 byte */
int b; /* 4 bytes */
char c; /* 1 byte */
} T1;

The sizeof(T1) will give you 12 bytes. But if you reorder the structure members like this:

typedef struct {
int b; /* 4 bytes */
char a; /* 1 byte */
char c; /* 1 byte */
} T2;

It will be only 8 bytes long! The short answer is because of data alignment and padding. See the difference:c_structures_padding

typedef struct {
char a; /* 1 byte */
pad[3]; /* 3 bytes padding */
int b; /* 4 bytes */
char c; /* 1 byte */
pad[3]; /* 3 bytes padding */
} T1;

typedef struct {
int b; /* 4 bytes */
char a; /* 1 byte */
char c; /* 1 byte */
pad[2]; /* 2 bytes padding */
} T2;

For the long one read the brilliant “The Lost Art of C Structure Packing” essay by Eric S. Raymond and you will also learn the meaning of the “slop” term.

Posted in Impressions | Tagged , , , , | Leave a comment

8 bit Cinema is amazing!

I still can’t believe in it, but I have finally seen Godzylla move! And there are more of them including “Pulp Fiction”, “Terminator 2”, “Forrest Gump”, “Star Wars” and even “Stranger Things”!

Posted in IRL, Offtop | Tagged , , | Leave a comment

The BeaST storage is mentioned on BSD Now TV!

While reviewing two BSD Magazine issues Allan Jude and Kris Moore discuss also the BeaST storage architecture articles.

BSD Now, Episode 157, starting from 0:53:05

Posted in BeaST, Copy-paste, Storage | Tagged , , , , , , , | Leave a comment

How can you find out which process is listening on a port on Windows?

If you can start cmd as an Administrator, simple run:

netstat -nab

which will give you the list of open sockets along with the names of processes.

In other case you can try to find it by process-id manually. For example, lets find which application is listening to SNMP 162 port number:

socket2pid_windows

Posted in Tips & tricks | Tagged , , , , | Leave a comment