The Downside of Authority

From Seth Godin:

A friend writes, “it is so frustrating not being able to control people.”

Of course, there’s a flipside.

If you could control people, just imagine how heavy that responsibility would weigh on you.

Freedom of choice brings with it the realization that our choices belong to us. One is the choice to lead. The other is the choice to follow.

If we make the choice to lead, we need to be prepared to own the consequences of our leadership, even (or especially) if we can’t actually control what others do.

Reposted from The downside of authority

Posted in Citizenship, Leadership | Leave a comment

Using iSCSI volumes as mountable filesystems under CentOS 7

This was supposed to be something simple, but it ended up taking more time and energy than it had any right to.  
These are the basic steps to get the storage volume created and connected:

  1. Create the volume on your favorite (or available) SAN device and export it as an iSCSI target
  2. Configure the iSCSI initiator (client) using any number of instructions out there:
    • iscsiadm -m discovery -t st -p <SAN IP address>
    • iscsiadm -m node -T <target iqn> -p <SAN IP address> -l
    • use /dev/disk/by-path to find the device for the volume
  3. Create the filesystem on the device
    • mkfs.xfs <device from last step>
  4. Create the mount point

In an ideal world, at this point we would just create a line in /etc/fstab that looks like this:

/dev/<device>    /mountpoint    xfs    defaults    0 0

There are four fundamental problems with this … 

  1. If another iSCSI volume were to be mounted on this system, the drive letters could change
  2. Since the filesystem type is ‘xfs’, systemd has no clue that it is not a local disk, so it tries to mount it at the very beginning of the boot process — even before the network starts up … in fact, systemd won’t even try to start the network until the local filesystems are up.  This race condition will render your system unbootable
  3. During shutdown, systemd will take down the network before it tries to unmount all local filesystems … again, this will cause a problem since the storage will disappear before the filesystem can be closed properly, leading to a high likelihood of data corruption/loss
  4. iSCSI volume mounts don’t happen immediately, and an overzealous application could start trying to use a directory on the mounted filesystem before it is ready, resulting in unpredictable errors

Problem #1 is easily solved using a UUID-based mount:  get the UUID of the volume using /dev/disk/by-uuid, match the current drive letter with the UUID, and replace that in the /etc/fstab entry:

UUID=<volume UUID>    /mountpoint    xfs    defaults    0 0

Problem #2 (and part of #3) is easily handled by specifically telling systemd that it is a network filesystem using a parameter in /etc/fstab:

UUID= <volume UUID>     /mountpoint    xfs    _netdev    0 0

From a systemd perspective, this creates a dependency for this mount action to the ‘network-online.target’ and ‘remote-fs-pre.target’, and makes the ‘remote-fs.target’ dependent on this mount (this will be significant later).

The rest of problem #3 is a bit trickier; the ‘_netdev’ tells systemd that the drive is a remote filesystem, but it still doesn’t know that it is iSCSI, so during shutdown it will (in parallel with all the other activities) shut down the iSCSI subsystem … before the filesystems have been unmounted.  This will result in an indefinite hang when trying to shut down, as well as corrupted filesystems.  Telling systemd that the filesystem is on an iSCSI volume requires another parameter in the /etc/fstab entry:

UUID= <volume UUID>  /mountpoint xfs _netdev,x-systemd.requires=iscsi.service    0 0

This now will guarantee that things will happen in the right order during startup (network -> iSCSI -> mount) and shutdown (unmount -> iSCSI down -> network down).

Problem #4 is a bit more delicate, and I’ll illustrate it with an example (the one that had me pulling out what is left of my hair):  I wanted to use an iSCSI volume as the docker workspace mounted under /var/lib/docker.  I set up the iSCSI volume as described above and put the following into /etc/fstab:

UUID= <volume UUID>  /var/lib/docker xfs _netdev,x-systemd.requires=iscsi.service    0 0

The basic problem is that docker is starting up before the iSCSI mount is complete.  Normal systemd dependencies for docker only require that the local filesystems be mounted and the network active before it will start docker.  Given that it can take a non-trivial amount of time to get iSCSI volumes mounted, it is very likely that docker will start accessing its work directory (/var/lib/docker) before the iSCSI volume is mounted.  Docker is very friendly in that if it finds its work directory empty, it will happily initialize it and start using it — normally something that is very useful; but in this case, it simply initializes its workspace in the base filesystem just in time for the mount to succeed and overlay what docker just did with the iSCSI volume.  The result is that docker has no clue what happened and cannot function — even if the mounted volume contains a valid work directory structure that it created earlier.  This is bad news, and docker just sits there babbling about missing layers or some other odd error.

My first solution was to modify the unit file for docker in the systemd repository (/usr/lib/systemd/system/docker.service).  In the top of the file is the ‘[Unit]’ section; by default in the CentOS 7 distribution there are several lines there, including ‘After=’ and ‘Requires=’.  Add to each of these lines ‘remote-fs.target’, separating it from any existing entries by a space.  What this does is make the startup of docker occur after any/all remote filesystems are active (including our iSCSI volume because of the ‘_netdev’ option).  This will force docker to wait for the workspace to be mounted, solving our problem. This works, but isn’t the best solution because the ‘docker.service’ file could be (and likely will be) replaced during the next upgrade of the docker package.

The final solution came to me when I was re-reading the ‘systemd.mount’ manpage again to try to figure out how to get the order right for both boot and shutdown. The manpage referred to mounting filesystems using /etc/fstab or unit files — that was the key. When systemd parses /etc/fstab, it creates a unit file for every mount point in /run/systemd/generator. The one I was looking for was called var-lib-docker.mount; I added ‘docker.service’ to the ‘Before’ line and saved it to /etc/systemd/system. The resulting file looks like this:

[Unit] 
Before=remote-fs.target docker.service
After=iscsi.service
Requires=iscsi.service

[Mount]
What=/dev/disk/by-uuid/6d74ff9c-49bc-4f5a-b31c-a780cf24df00
Where=/var/lib/docker
Type=xfs
Options=_netdev

[Install]
WantedBy=remote-fs.target

The other change I made to the file is to add the ‘[Install]’ section at the end … this tells systemd where to link this item into the dependency chain.

At this point, you need to do two things to enable this change:

  1. Remove the line that we’ve been building from the /etc/fstab file — it is no longer needed, and will cause problems if it remains
  2. Install the unit file: systemctl enable var-lib-docker.mount

Epilogue

Until I discovered the ability to mount filesystems from unit files (where the range of parameters is much wider), the solution was not optimal — because you had to modify a distribution file that would be overwritten when that package was updated. By combining all the dependency and ordering information into one file that will survive updates provides a robust solution.

Posted in Technology | Tagged , , | Leave a comment

Everyone loves dessert, right?

You’re hosting a big crowd, and it comes to that nice scrumptious dessert that you spent a lot of time on … and one of your guests won’t eat it.  How rude!  You put all that time and effort into making that masterpiece … and they won’t even taste it.  So you go over, and try to talk them into a piece … just a small piece.  “It won’t hurt your diet”, you say — because they must be on a diet if they aren’t eating your dessert.  They still decline … politely … but you can’t help feeling insulted …

There may be a good reason why they aren’t eating it — and it’s not because they don’t like it, or don’t want it … it may be because eating it could kill them.

Diabetes is a condition that makes it difficult (or impossible) for your body to process carbohydrates — which includes all forms of sugar.  You may be thinking, “Great — that is what’s making me fat … all those carbs that I eat just seem to turn straight into fat in all the wrong places.”  Unfortunately, that’s only partly correct.  In a properly functioning body, excess carbohydrates do end up getting converted into fat, but they make another conversion first:  into glucose.  Yes — that’s sugar.  All forms of carbohydrates, whether they start out as breads, pasta, fruit, candy, or that heaping spoonful of sugar you put in your coffee, end up as glucose in your blood stream.  Normally, the pancreas produces a substance called Insulin that helps your body use the glucose to feed your muscles, your brain, and other parts of your body that need glucose to function.  Yes, it also helps convert extra glucose into fat … but that’s what is supposed to happen so that your body has extra energy when it’s needed.

It’s this insulin that diabetics have a problem with … there just isn’t enough of it to take care of all the glucose that is in the blood stream.  So what’s the problem with having extra glucose in the blood?  The biggest problem is that elevated glucose levels have a toxic effect on most of the other systems in the body.  The kidneys work overtime to try to get that extra glucose out (which is why diabetics have to go to the bathroom a lot).  Excess glucose negatively impacts critical organs such as the heart and lungs.  Diabetes frequently compromises the immune system, increasing susceptibility to other diseases.  The most widespread impact of diabetes in the body is that it eats away at the nervous system.

When blood glucose levels are high, the sheath around the nerves starts to break down.  When this happens in your extremities (fingers, toes, etc.), numbness occurs, increasing the chance of undetected injuries.  If not treated soon enough, these injuries can lead to serious infection and (in extreme cases) amputation.  When it happens in the eyes, the vision starts to deteriorate — leading to eventual blindness.  Before research identified successful treatments for diabetes, it was a major cause of premature death — primarily due to the complications it causes.

Diabetes is called a disease, but it’s not usually something that you can catch … it’s part of everyone’s genetic makeup.  Most of the time it stays inactive, until something stresses the body and causes it to surface.  Currently, the most common stressor that causes diabetes to surface is obesity:  having too much body fat places an enormous stress on all the systems of the body.  Emotional stress can also trigger diabetes:  death of a loved one, financial stress, and overwork are the primary culprits here.  The bottom line is that it isn’t someone’s fault that they have diabetes … but that doesn’t make it any easier to deal with.

November is National Diabetes Awareness Month, so stop for a minute to think about what you can do to reduce the chances of triggering diabetes in your body.  Fortunately, these actions are very much in line with the traditional concept of a healthy lifestyle:  eat right, lose excess weight, increase your daily exercise, etc.  If you’re not sure, ask your doctor to order an A1C blood test or take advantage of the diabetes screening events that are popping up all over lately. The sooner you identify diabetes and get it under control, the more likely you will lead a (mostly) normal life.

So the next time you see someone steering away from that extra slice of bread or passing on dessert, it may be for a really good reason.  Diabetics are usually really good at hiding their diabetes … they try to be as ‘normal’ as they can.  Sometimes you won’t know unless they tell you … or if you know the signs to look for — because you’re a diabetic too, like I am.

Posted in Diabetes | Tagged | Leave a comment

Why people don’t vote

There are many reasons people will give you when asked why they don’t vote …2014-11-04 16.40.09 I Voted Small

“It is too inconvenient”

“I don’t have time”

“I don’t know the people that are running”

“I don’t know all the issues”

“It’s only a mid-term election — nothing really important is at stake”

“They guy I would be voting for is going to lose … so why should I bother”

The fun part is, when the elected officials start doing things they don’t agree with, these same people that didn’t vote are blaming everyone else for voting them into office.  What they don’t realize (or more likely, don’t want to admit) is that by skipping the voting booth, they are letting “everyone else” make the decisions for them.  If they would take the few extra minutes to go to their local polling station and cast their own ballots, they would at least have the excuse that “they voted for the other guy”.

In the United States of America, voting is a right:  everyone over the age of 18 has the ability to register to vote and cast their ballots.  Too bad only 35-40% of those people actually claim that right … and that’s in a good year.  It’s not uncommon for only 15-20% of the eligible voters to show up at the polls during an off-year election.  What most people don’t wrap their minds around is that voting is also a responsibility … we have the responsibility to understand the issues, know who’s running for the different offices, and make an intelligent selection as to who gets our vote.

Given the typically low turnout, how many additional votes would it really take to change the course of an election — to take the guy who “is obviously going to lose” and make them the winner?  Not as many as you might think.  In a city of 100,000 people, a 40% voter turnout will result in 20,000 – 30,000 votes (depending on exactly how many are eligible to vote).  Many elections are decided by less than 5% of the total vote, which would mean that 1000 votes could change the outcome of the election — and sometimes it’s less than 100.

So — whether you’re a Republican or Democrat, Conservative or Liberal, moderate or extreme, go out and cast your vote tomorrow … and may the best man win!

Posted in Citizenship, Politics | Leave a comment

Why are we here?

One of the fundamental questions that define who we are and how we interact with the world (otherwise known as our worldview) is this simple question:  “Why are we here?

Most people could quickly answer this question with something like, “To make money” or “To be a great father” or even “To have fun”.  When pushed, many of them would dig a bit deeper and respond with “To be a good person” or “To help other people” … or respond according to their religious beliefs.  Some people will even say “I don’t know”.  Even Wikipedia has a page to help answer this question! It is essential to spread the word to the world, and with SocialBoosting is possible to increase the views of our content.

Being a Christian, my answer is “To be God’s servant”.  While this is definitely appropriate, it’s sometimes hard to bring this abstract concept down to real life.  In the book of Ecclesiastes, King Solomon (referred to as “The Preacher” throughout the book) takes a look at the question from a different perspective:  he takes a look at real life and tries to determine the purpose for our lives based on what he sees.  At first glance, it does not look good:

Vanity of vanities, says the Preacher,
vanity of vanities! All is vanity.
What does man gain by all the toil
at which he toils under the sun?
A generation goes, and a generation comes,
but the earth remains forever.

(Ecclesiastes 1:2-4 ESV)

Solomon spends quite a bit of the 12 chapters in this book describing most of the things that mankind does as being “vanity” — sometimes translated as “breath” or “vapor”.  Is Solomon trying to tell us that our lives are totally without merit?  That nothing we do is worth anything?  Fortunately, this is not the case, or this post would be seriously depressing!  Interspersed within this book are more positive statements:

For to the one who pleases him God has given wisdom and knowledge and joy  – Ecclesiastes 2:26 (ESV)

I perceived that there is nothing better for them than to be joyful and to do good as long as they live; also that everyone should eat and drink and take pleasure in all his toil—this is God’s gift to man.  – Ecclesiastes 3:12-13 (ESV)

Enjoy life with the wife whom you love  – Ecclesiastes 9:9 (ESV)

Wrapping up his analysis of the value of everyday life, Solomon puts in the very end:

The end of the matter; all has been heard. Fear God and keep his commandments, for this is the whole duty of man. – Ecclesiastes 12:13 (ESV)

It isn’t what we do that makes a difference.  Anything (and everything) we do is fleeting unless it is what God wants us to do.  Solomon’s conclusion is the same as mine, (although it’s actually the other way around):  The reason we are here is to be God’s servant, to do His work — and enjoy the results of that work.

Posted in Bible | Tagged | Leave a comment

What path are you on?

Having seen the movie Ender’s Game for a second time now, I have to stop and think about what role we play in our own world:  Colonel Graff or Ender Wiggin?

“We won … that’s all that matters.” – Col Graff
“It’s not about winning, it’s about how you win.” – Ender Wiggin

enders-gameThis isn’t the kind of movie where there is a clear-cut hero or villain, oppressor or victim. It’s all about perspective and shades of gray.  Col Graff’s worldview is centered on “it’s us or them — if we don’t take out the enemy first, they’ll come back and destroy us.”  As someone who survived the failed attack on Earth 50 years before, it would be a reasonable fear motivation … or would that be revenge?  He, and the leadership of the International Fleet, are doing whatever they think is necessary to achieve this objective — the end justifies the means.

When pressed with the question “do the ends justify the means?”, most of us would quickly say “no!” … but in reality are we pursuing our own personal objectives with such tunnel vision that we cannot (or choose to not) see the results other than as progress to our goal? For example, how many people do we talk with just to further our own agenda?  In the business world, it’s called “networking” … everyone knows it’s artificial, yet it’s the way business works.

Ender Wiggin, on the other hand, is a product of his society … or is he?  His birth as the third child in his family took a lot of special effort (we won’t talk about the validity of a 2-child only rule in society).  His parents wanted their children to be successful in “the program”, and his older siblings had washed out.  After demonstrating significant talent in his studies, he was pushed in calculated ways to develop skills that would serve him as a commander.

There are those that would say that we are all “products of our environment” … conditioned to respond in certain ways, whether positive or negative.  Our families train us to respond; our jobs, too.  Even the church trains us to respond.  What is the result of all this conditioning?  Are we truly locked into whatever it is we are programmed for?  Ender Wiggin woke up to his conditioning (too late, some would say) and started forging his own way.

So — are you Col Graff or Ender Wiggin?  Both are driven: one internally and the other externally.  Jesus calls us to follow a different path:

“so that we may no longer be children, tossed to and fro by the waves and carried about by every wind of doctrine, by human cunning, by craftiness in deceitful schemes. ” Ephesians 4:14

We need to follow the path He blazed for us — breaking the traditions of the pharisees, who had a very narrow view of reality … and waking people up from their dogmatic following of the society they were in.  We need to be like Ender at the end of the story:  following our conscience and doing what is right … wherever that takes us.

Posted in Worldview | Tagged , , | Leave a comment

There is always a reason

moses-parts-the-red-seaI always wondered why God left Jacob’s family in Egypt when he knew that they would get dumped on, abused, and turned into slaves, necessitating the miraculous rescue through the Red Sea. They could have left before it turned bad: once the famine that put them there in the first place was done … when the Pharaoh that Joseph served had died … or when they started to see the signs that they were no longer welcome.  For quite a while, they could have just decided it was time, thanked the Egyptians, and relocated back where they came from.

What would have happened if they had left? They would have gone back up into Caanan (or beyond, where Abraham’s family came from), intermarrying with the local people and ending up dispersed into the land.  Over several generations, they would lose whatever identity they might have had as a culture.  While this did eventually happen, it happened on God’s schedule.

Instead, God gave them every reason to stay. Joseph told them to tell Pharaoh that they were shepherds, knowing that the Egyptians loathed shepherds, so they would be set apart and left alone:  they were given the land of Goshen, a fertile area ideally suited to their lifestyle. They had ample resources, so there was no real reason to leave. These things allowed the Israelites to grow from a large family group (but still probably less than 100 people) into a nation of over a million people in 430 years while still retaining a unique cultural identity.  Combined with the additional solitude of a generation wandering in the wilderness, this created a culture that was more solid than any before or since.

When they emerged from Egypt, they were ready to be used by God to reclaim Caanan as the Jewish homeland, driving out all the other peoples to create the theocratic nation God wanted.  We know from the stories related in Judges, Kings, and Chronicles that it didn’t happen quite the way that God had intended … but that’s another lesson.

So — while God can protect us and keep us from harm, sometimes he also uses adverse circumstances to shape us into the tools he wants us to be.

Posted in Bible | Tagged | Leave a comment

Like father, like son?

In Genesis 12, God called Abram and his wife Sarai (later renamed as Abraham and Sarah) out of Haran (probably somewhere in the area we now call Northern Syria) and sent them westward and then south through the land of Cannan.  This was not a trivial journey — and meant leaving a comfortable life for what could be a journey that never ended.  It took a lot of faith in God to take that first step out of Haran … trusting that God had a great plan for them and that he would take care of them along the way.

By the time they got down to Egypt, that trust had apparently worn a bit thin.  When they met Pharaoh, Abram introduced Sarai as his sister because he didn’t trust the Egyptians … and didn’t trust God to protect them.  As it turns out, God was watching and protecting the Egyptians from Abram’s schemes — and Abram came out of the encounter a very rich man.  Abram was trying to rely on his own smarts instead of trusting God — not very smart.

Many years later, Abraham’s son Isaac found himself in a similar situation in Genesis 26.  God sent him and his family to live in another place (the land of the Philistines) with a promise to protect him and (carrying forward the promise to Abraham) to make his offspring numerous.  One would assume that the story of Abram and Sarai’s escapades in Egypt would have been told to Isaac; but despite that and God’s promise, he pulls the same stunt — introducing his wife as his sister to keep the Philistine King from killing him!  Once again, God protects the Philistines from Isaac’s foolishness and Isaac comes out of the situation not only alive, but richer (much richer).

What lessons are we supposed to take from these two situations?

An obvious one would be that we are supposed to trust God instead of trying to “do it ourselves”.  While it is a good thing for us to do … both Abram and Isaac gained significantly from their encounters — that somewhat weakens that lesson, because there is no negative for those two men for having tried to rely on their own wits.

Another lesson that could come out of this is that God protects the innocent.  Neither the Egyptians nor the Philistines had done anything (that we know of) to provoke this action on the part of Abram and Isaac — so God kept them from sinning in spite of their ignorance of the true situation.

While both of these are valid lessons, I think the real lesson from this situation is that God can take a situation that we’ve messed up trying to do it our own way and still make it work out for good:

And we know that for those who love God all things work together for good, for those who are called according to his purpose. (Romans 8:28, ESV)

God can take something that we’ve made into a total disaster and turn it into a positive result … just because He loves us.

Posted in Bible | Tagged , , | 3 Comments

I Am A Veteran

wavingUS

I am battle weary.
I cry for my comrades lost in battle.
I hold my family close.
I have memories that haunt me day and night.
I fought to keep my country free.

I am proud of my country’s might.
I love those I had to leave behind.

I will carry the scars of battle all the days of my life.
I hope that one day there will be no more need to fight.
I wish that no one needed to suffer.

I am a remnant of the man who left for war.
I missed the birth of my firstborn.
I was unable to tell my father that I love and forgive him before he died.
I lost my dog, whom I had had since childhood.
I gave my all for my country.

I am –
A Veteran.

My daughter wrote this a couple years ago … and it is just as moving now as it was when I first read it.  We talk about those that gave their lives to protect our freedom, but we also need to remember those that come home — but can’t leave it all on the battlefield.

Thanks, Alyssa.

Posted in Family, Military | Tagged | 2 Comments

Make a joyful noise!

music-clipart-300x228Many times in the Bible, God tells us to celebrate and to sing and be happy.  Even in the stodgy books like Deuteronomy, it commands us to celebrate:

You shall rejoice in your feast, you and your son and your daughter, your male servant and your female servant, the Levite, the sojourner, the fatherless, and the widow who are within your towns. For seven days you shall keep the feast to the Lord your God at the place that the Lord will choose, because the Lord your God will bless you in all your produce and in all the work of your hands, so that you will be altogether joyful. (Deuteronomy 16:14-15, ESV)

Then there’s the two places in Psalms (98:4 and 100:1) that gave title to this post:

Make a joyful noise to the Lord, all the earth!
Serve the Lord with gladness!
Come into his presence with singing! (Psalms 100:1, ESV)

Even the angels have a party when the time is right:

Just so, I tell you, there is joy before the angels of God over one sinner who repents.” (Luke 15:10, ESV)

Three of my six children are now out of the house – and it gets quiet at times … really quiet.  When they come home and their friends come over, it gets very “joyful” (noisy) at times — but it is great to hear them enjoying themselves.  We host the weekly Bible Study for the Awana Journey group (High School age) — and we usually have several graduates of the program (college age) come as well … and it gets quite “joyful” for a while then, too.

While sometimes I like to enjoy some peace and quiet, there is nothing so pleasing to my heart than to hear people enjoying themselves in my house.

 

Posted in Family | Tagged | Leave a comment