Amazon Ad

Featured Post

Thursday, May 13, 2021

Analyzing NAS (NFS/CIFS) Performance

 NAS Cheatsheets


This blog is dedicated to those sysadmins and IT storage admins who are implementing network-attached storage of any type and protocol - file-based and block-based, Ethernet and FC.

The main goal is to SAVE YOU TIME. The blog contains real-life examples and tips.


Rules of the house:

1. Enjoy the free help and email/post comments and requests.

2. Contribute by clicking on the ads.

3. Please - this blog is not about choosing technologies and vendors. The idea is to help implementing computer storage faster and smarter, not about choosing in between the zillion options available.


NFS Performance Analysis for the masses


Surprise - You don't have to be an NFS performance guru to reach some interesting conclusions regarding your NFS traffic.

Real Life Example: Users complain - "access to /projects/ourproject is slow".

Research:

1. Build the "story" around the problem:

1.1. When did the problem start?

1.2. Does it occur only from specific hosts, to specific users, on/from/to specific networks, does it happen with other protocols (SMB/CIFS, HTTP, FTP to name a few)?

2. Review the NFS environment:

2.1. Pick one NFS host (I assume it's a Unix box, exact commands may differ) as your main research target, and do not look on other hosts from that moment. There are too many outputs and details to care about already.

2.2. Client OS versions.

2.3. NFS mount options and transfer size units.

2.4. NFS and RPC errors.

2.5. NFS operations mix.


NFS Clients

What should be my suspicion level at the client itself?


It's better put some reality on the table - experience shows that NFS performance could dramatically improve as of patches, available from the Unix vendor. The following lists the Unix NFS clients ordered by my subjective "NFS Clients Ranking" or in other words - how much this client sucks compared to others:

* Linux 2.4.20/2.6.x and up - Linux is the best. Can easily outperform other NFS clients with its excellent out-of-the-box performance, tunings rarely required. Excellent review of details available here: XXX.

* FreeBSD - I don't have enough experience here, as many Internet sites (the really large ones) use FreeBSD, I expect pretty much the same of Linux. Watch out of potentially small transfer size units (see Transfer Size section).

* Solaris - Used to be the King of NFS, don't waste your time tuning any old versions (prior to 2.8.x), usually suck without latest patches, available here: .

* HP-UX, AIX - Patches, patches, patches. These NFS clients are not the major focus for these vendors, so beware of weird NFS behaviours and bugs.


Note: This is a purely subjective list. Use as a simple reference to the time you should expect to spend on tuning these clients. Experience may vary, mostly latest OS releases fully-patches clients should reach close-to-optimum performance.


NFS mount options


Review the contents of the following files:

/etc/fstab - Linux, FreeBSD

/etc/vfstab - Solaris

/etc/filesystems - AIX

HP-UX


Use the "mount" command, look at /proc/mounts (Linux).


Modern NFS clients default to NFS over TCP. Most likely that's what you want, and that's what you should look for.

Friday, July 05, 2019

Friday, June 21, 2019

Kubernetes Cheatsheet - Most Useful Commands in One Place


Overview

The following is the most concise Kubernetes/K3S/K8S commands list.

General

kubectl create secret generic --from-literal=password=test123
kubectl get secrets

Pods & Nodes

kubectl get nodes
kubectl describe nodes
kubectl apply -f yml
kubectl get deploy
kubectl get pods -o wide
kubectl exec -it node bash
kubectl get svc —watch

kubectl version -o yaml
kubectl get rs
kubectl rollout status
Kubectl rollout History
kubectl apply —record=true

Install inside nodes for basic networking stuff:


apt-get install iputils-ping curl dnsutils iproute2 -y

Docker related

docker image build -t name something/something:0.1
docker image ls
docker login
docker image push image name

Storage related

kubectl get sc
kubectl describe sc
kubectl get pvc
kubectl get pv
kubectl describe pv


Scaling

kubectl get hpa
kubectl get clusterrolebindings
kubectl get ns

Certificates

openssl genrsa -out mia.key 2048
openssl req -new -key Mia.key -out Mia.csr -subj “/CN=Mia/O=orgname”
convert to .crt
OpenSSL x509 -req -in Mia.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out Mia.crt -days 365
kubectl config set-credentials mia —client-certificate=mia.crt —client-key=mia.key

Logins:

kubectl config set-context mia —cluster=clustername —namespace=ns1 —user=mia

kubectl use-context mia
kubectl config current-context

Sunday, February 03, 2019

esxcli profile commands


esxcli software sources profile list -d /vmfs/volumes/shares/storage/assman/install/VMware/vSphere_6.0/6.0U3/update-from-esxi6.0-6.0_update03.zip 
esxcli software sources profile list -d /vmfs/volumes/ds1/update-from-esxi6.0-6.0_update03.zip

esxcli software profile update -p ESXi-6.0.0-20170202001-standard -d /vmfs/volumes/ds1/update-from-esxi6.0-6.0_update03.zip

Useful OpenStack Neutron Commands


neutron subnet-create ext-net --name ext-subnet --allocation-pool start=172.21.50.1,end=172.21.50.100 --disable-dhcp --gateway 172.21.0.1 172.21.0.0/16
neutron subnet-create ext-net --name ext-subnet --allocation-pool start=172.21.50.1,end=172.21.50.100 --disable-dhcp --gateway 172.21.0.1 172.21.0.0/16

neutron net-create ext-net --shared --router:external True
neutron subnet-create ext-net --name ext-subnet --allocation-pool start=172.21.50.1,end=172.21.50.100 --disable-dhcp --gateway 172.21.0.1 172.21.0.0/16

neutron subnetpool-create --shared --is-default True --pool-prefix 172.21.3.0/24 --default-prefixlen 24 shared-default

router set --route destination=marketing_public,gateway=172.21.0.1 marketing-public-router

Tuesday, January 29, 2019

Some KVM Commands


virt-manager
virsh list —all
qemu-img create -f qcow2 -b vm6.qcow2 25G

Tuesday, January 22, 2019

DNS in PowerShell


Get-DnsClient
Set-DnsClientServerAddress -InterfaceIndex -ServerAddresses (“212.38.1.100”)
Add-Computer -DomainName “acme.com” -Credential (get-credential)