On Linux, A semaphore is a System V IPC object that is used to control utilization of a particular process.
Semaphores are a shareable resource that take on a
non-negative integer value. They are manipulated by the P (wait) and V
(signal) functions, which decrement and increment the semaphore,
respectively. When a process needs a resource, a “wait” is issued and
the semaphore is decremented. When the semaphore contains a value of
zero, the resources are not available and the calling process spins or
blocks (as appropriate) until resources are available. When a process
releases a resource controlled by a semaphore, it increments the
semaphore and the waiting processes are notified.
The Semaphore Kernel parameters
This command displays the value of the semaphore parameters:
# /sbin/sysctl -a|grep sem
3.2 - Calculate them ?
Calculate the minimum total semaphore requirements using the following formula:
sum (process parameters of all database instances on the system) + system and other application requirements
Set semmns (total semaphores systemwide) to this total.
Set semmsl (semaphores per set) to 256.
Set semmni (total semaphores sets) to semmns / semmsl rounded up to the nearest multiple of 1024.
The following formula can be used as a guide, although in practice,
SEMMNS and SEMMNU can be much less than SEMMNI * SEMMSL because not
every program in the system needs semaphores.
How to rescan disk in Linux after extending vmware disk
Published: | Modified: | 15470 views
Learn
to rescan disk in Linux VM when its backed vdisk in vmware is extended.
This method does not require downtime and no data loss.
Re-scan vdisk in Linux
Sometimes
we get a disk utilization situations and needs to increase disk space.
In vmware environment, this can be done on the fly at vmware level. VM
assigned disk can be increased in size without any downtime. But, you
need to take care of increasing space at OS level within VM. In such
scenario we often think, how to increase disk size in Linux when vmware
disk size is increased? or how to increase mount point size when vdisk
size is increased? or steps for expanding LVM partitions in vmware Linux
guest? or how to rescan disk when vdisk expanded? We are going to see
steps to achieve this without any downtime.
In
our example here, we have one disk /dev/sdd assigned to VM of 1GB. It
is part of volume group vg01 and mount point /mydrive is carved out of
it. Now, we will increase size of disk to 2GB at vmware level and then
will add up this space in mount point /mydrive.
Step 1:
See below fdisk -l
output snippet showing disk /dev/sdd of 1GB size. We have created
single primary partition on it /dev/sdd1 which in turns forms vg01 as
stated earlier. Always make sure you have data backup in place of the disk you are working on.
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Disk/dev/sdd:1073MB,1073741824bytes
255heads,63sectors/track,130cylinders
Units=cylinders of16065*512=8225280bytes
Sector size(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Disk identifier:0x8bd61ee2
Device Boot Start EndBlocks IdSystem
/dev/sdd111301044193+83Linux LVM
# ll /mydrive
total24
drwx------.2root root16384Jun2311:00lost+found
-rw-r--r--.1root root0Jun2311:01shri
drwxr-xr-x.3root root4096Jun2311:01.
dr-xr-xr-x.28root root4096Jun2311:04..
Step 2:
Now,
change disk size at vmware level. We are increasing it by 1 more GB so
final size is 2GB now. At this stage disk need to be re-scanned in Linux
so that kernel identifies this size change. Re-scan disk using below
command :
Make sure you use correct disk name in command (before rescan). You can match your SCSI number (X:X:X:X) with vmare disk using this method. Note : Sending “– – -” to /sys/class/scsi_host/hostX/scan
is scanning SCSI host adapters for new disks on every channel (first
-), every target (second -), and every device i.e. disk/lun (third -)
i.e. CTD format. This will only helps to scan when new devices are attached to system. It will not help us to re-scan already identified devices. Thats why we have to send “1” to /sys/class/block/XYZ/device/rescan
to respective SCSI block device to refresh device information like
size. So this will be helpful here since our device is already
identified by kernel but we want kernel to re-read its new size and
update itself accordingly. Now kernel re-scan disk and fetch its new size. You can see new size is being shown in your fdisk -l output.
Shell
1
2
3
4
5
6
7
8
9
10
11
Disk/dev/sdd:2147MB,2147483648bytes
255heads,63sectors/track,261cylinders
Units=cylinders of16065*512=8225280bytes
Sector size(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Disk identifier:0x8bd61ee2
Device Boot Start EndBlocks IdSystem
/dev/sdd111301044193+83Linux LVM
Step 3:
At
this stage our kernel know new size of disk but out partition
(/dev/sdd1) is still of old 1GB size. This left us no choice but delete
this partition and re-create it again with full size. Make a note here
your data is safe and make sure your (old & new) partition are marked as Linux LVM using hex code 8e or else your will mess up whole configuration.
Delete and re-create partition using fdisk console as below:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# fdisk /dev/sdd
Command(mforhelp):d
Selected partition1
Command(mforhelp):n
Commandaction
eextended
pprimary partition(1-4)
p
Partition number(1-4):1
First cylinder(1-261,default1):
Using defaultvalue1
Last cylinder,+cylindersor+size{K,M,G}(1-261,default261):
Using defaultvalue261
Command(mforhelp):t
Selected partition1
Hex code(typeLtolist codes):8e
Command(mforhelp):p
Disk/dev/xvdf:2147MB,2147483648bytes
255heads,63sectors/track,261cylinders
Units=cylinders of16065*512=8225280bytes
Sector size(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Disk identifier:0x8bd61ee2
Device Boot Start EndBlocks IdSystem
/dev/sdd112612095458+83Linux LVM
All
fdisk prompt commands are highlighted in above output. Now you can see
new partition /dev/sdd1 is of 2GB size. But this partition table is not
yet written to disk. Use w command at fdisk prompt to write table.
Shell
1
2
3
4
5
6
7
8
9
10
11
Command(mforhelp):w
The partition table has been altered!
Calling ioctl()tore-readpartition table.
WARNING:Re-reading the partition table failed with error16:Device orresource busy.
The kernel still uses the old table.The newtable will be used at
the next reboot orafter you run partprobe(8)orkpartx(8)
Syncing disks.
You may see warning and error like above. If yes, you can use partprobe -s and you should be good. If you still below error with partprobe then you need to reboot your system (which is sad ).
Shell
1
2
3
Warning:WARNING:the kernel failed tore-readthe partition table on/dev/sdd(Device orresource busy).Asaresult,it may notreflect all of your changes untilafter reboot.
Step 4:
Now
rest of the part should be tackeled by LVM. You need to resize PV so
that LVM identify this new space. This can be done with pvresize command.
As new PV size is learned by LVM you should see free/extra space available in VG.
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# vgdisplay vg01
---Volume group---
VG Name vg01
System ID
Format lvm2
Metadata Areas1
Metadata Sequence No3
VG Access read/write
VG Status resizable
MAX LV0
Cur LV1
Open LV0
Max PV0
Cur PV1
Act PV1
VG Size2.00GiB
PE Size4.00MiB
Total PE511
Alloc PE/Size250/1000.00MiB
Free PE/Size261/1.02GiB
VG UUID0F8C4o-Jvd4-g2p9-E515-NSps-XsWQ-K2ehoq
You can see our VG now have 2GB space i.e. what we have resized our disk to! Now you can use this space to create new lvol in this VG or extend existing lvol using LVM commands. Further you can extend filesystem online which is sittign on logical volumes.
You can observe all lvol in this VG will be un-affected by this activity and data is still there as it was previously.
source
Maybe beating a dead horse here but since this jumps at the top of the list in search posting my findings here.
It may be a bug but it still works for me:
1) press Alt and hold
2) move the mouse out of the krdc window
3) release Alt
4) move mouse back into the window
5) press Ctrl+Del
How to create a keytab file for a Kerberos user logging into Active
Directory. What's a keytab file? It's basically a file that contains a
table of user accounts, with an encrypted hash of the user's password.
Why have a keytab file? Well, when you want a server process to
automatically logon to Active Directory on startup, you have two
options: type the password (in clear text) into a config file
somewhere, or store an encrypted hash of the password in a keytab file.
Which is safer? Well, you can decide. In any case, you'd better do a
good job of protecting the file (be it a config file or a keytab).
Anyway, the accepted way to store a hashed password in Kerberos is to
use a keytab file. Now the file can be created using a number of
utilities. On a Windows machine, you can usektpass.exe. On Ubuntu Linux, you can use ktutil.
Before I demonstrate how to create the keytab, a word about encryption.
There are a number of encryption types used for hashing a password.
These include DES-CBC-CRC, DES-CBC-MD5, RC4-HMAC and a few others.
Active Directory uses RC4-HMAC by default. Back in Windows 2000, you
could also use the DES types without any trouble, but since Windows
2003, only RC4-HMAC is supported, unless you make a registry change (to
all of your domain controllers). If you need to use DES for some
reason, then refer to the Technet article at the bottom of the page.
Before attempting to create a keytab file, you'll need to know
the user's kerberos principal name, in the form of
username@MYDOMAIN.COM, and the user's password.
Creating a KeyTab on Windows(tested on Windows Server 2008 R2)
Open a command prompt and type the following command:
Creating a KeyTab on Ubuntu Linux (tested on Ubuntu 10.10 - Maverick Meerkat)
Open a terminal window and type the following commands:
ktutil addent -password -p username@MYDOMAIN.COM -k 1 -e RC4-HMAC - enter password for username - wkt username.keytab q
Testing the Keytab File
Now in order to test the keytab, you'll need a copy of kinit. You can
use the version that's on Ubuntu, or if on Windows, you can install the
latest Java runtime from Sun (JRE). In either case, you'll need to
setup your /etc/krb5.conf file (on Linux) or c:\windows\krb5.ini (on
Windows). Either file should look something like this:
Now you should successfully authenticate without being prompted for a password. Success!
More Information
If you need to use any other encryption Type than RC4-HMAC, then you'll
need to tweak your AD domain controllers. Please refer to the following
TechNet article.
Some times on Linux boxes the user account will be locked due to
issues such as wrong password entry, account expiry etc. In this post we
will see how to unlock user account with different commands. Example1: Check if the password is disabled by viewing /etc/shadow file for user entry. grep ‘username’ /etc/shadow
if you are able to see ! in the second field starting that indicates
that password is disabled, you have to enable it back by using passwd
with -u option passwd -u username Example: passwd -u surendra Unlocking password for user temp. passwd: Success Example2: Check if the user expiry date is reached or not by using chage command chage -l username Example chage -l surendra Last password change : Jan 05, 2012 Password expires : never Password inactive : never Account expires : Jan 01, 2012 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
If you see that the account expires use usermod or chage command to extend the user expiry time. usermod -e yyyy-mm-dd username usermod -e 2012-05-10 surendra or chage -E yyyy-mm-dd username chage -E 2012-05-10 surendra
this will extend user expiry time to 5 more months. Example3: Check if the user shell is set to a valid shell or not, if it’s not set it to a valid one. grep ‘username’ /etc/passwd Example: grep ‘surendra’ /etc/passwd
If the user shell in seventh feild is set to /sbin/nologin or /bin/false set it back to /bin/bash or /bin/ksh usermod -s /bin/bash usrename usermod -s /bin/bash surendra
Share your thoughts on this and let us know if you have other ideas to unlock user accounts in Linux.