{"id":9793,"date":"2017-02-16T19:13:43","date_gmt":"2017-02-16T18:13:43","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/"},"modified":"2023-07-18T07:39:43","modified_gmt":"2023-07-18T05:39:43","slug":"sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/","title":{"rendered":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes"},"content":{"rendered":"<p><span style=\"color: #000000; font-family: Calibri;\">In my <\/span><a href=\"http:\/\/dbi-services.com\/blog\/introducing-high-availability-and-multi-subnet-scenarios-with-sql-server-on-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #0563c1; font-family: Calibri;\">previous blog post<\/span><\/a><span style=\"color: #000000; font-family: Calibri;\">, I talked about SQL Server on Linux and high availability. During my test, I used a NFS server to share disk resources between my cluster nodes as described in the Microsoft documentation. A couple of days ago, I decided to add a fourth node (LINUX04) to my cluster infrastructure and I expected to do this work easily. But no chance, I faced a problem I never had before on this infrastructure. <\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14832 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\" alt=\"blog 117 - 01 - sqlfcionlinux - archi\" width=\"650\" height=\"365\" \/><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Switching over this last node led to a failed SQL Server FCI resource. After digging into the problem, I found out the root from the SQL Server error log as shown below:<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[mikedavem@linux04 ~]$ sudo cat \/var\/opt\/mssql\/log\/errorlog\n2017-02-12 18:55:15.89 Server      Microsoft SQL Server vNext (CTP1.2) - 14.0.200.24 (X64)\n        Jan 10 2017 19:15:28\n        Copyright (C) 2016 Microsoft Corporation. All rights reserved.\n        on Linux (CentOS Linux 7 (Core))\n2017-02-12 18:55:15.89 Server      UTC adjustment: 0:00\n2017-02-12 18:55:15.89 Server      (c) Microsoft Corporation.\n2017-02-12 18:55:15.89 Server      All rights reserved.\n2017-02-12 18:55:15.89 Server      Server process ID is 4116.\n2017-02-12 18:55:15.89 Server      Logging SQL Server messages in file 'C:\\var\\opt\\mssql\\log\\errorlog'.\n2017-02-12 18:55:15.89 Server      Registry startup parameters:\n         -d C:\\var\\opt\\mssql\\data\\master.mdf\n         -l C:\\var\\opt\\mssql\\data\\mastlog.ldf\n         -e C:\\var\\opt\\mssql\\log\\errorlog\n2017-02-12 18:55:15.91 Server      Error: 17113, Severity: 16, State: 1.\n2017-02-12 18:55:15.91 Server      Error 2(The system cannot find the file specified.) occurred while opening file 'C:\\var\\opt\\mssql\\data\\master.mdf' to obtain configuration information at startup. An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary.\n2017-02-12 18:55:15.91 Server      SQL Server shutdown has been initiated<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">Well, the error speaks for itself and it seems I\u2019m concerned by a file access permission in my case. My first reflex was to check the corresponding permissions on the corresponding NFS folder.<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[mikedavem@linux04 ~]$ sudo ls -lu \/var\/opt\/mssql\/data\nTo.al 53320\ndrwxr-----. 2 995 993     4096 Feb 14 23:12 lost+found\n-rwxr-----. 1 995 993  4194304 Feb 14 23:19 master.mdf\n-rwxr-----. 1 995 993  2097152 Feb 14 23:19 mastlog.ldf\n-rwxr-----. 1 995 993  8388608 Feb 14 23:19 modellog.ldf\n-rwxr-----. 1 995 993  8388608 Feb 14 23:19 model.mdf\n-rwxr-----. 1 995 993 13959168 Feb 14 23:19 msdbdata.mdf\n-rwxr-----. 1 995 993   786432 Feb 14 23:19 msdblog.ldf\ndrwxr-----. 2 995 993     4096 Feb 14 23:08 sqllinuxfci\n-rwxr-----. 1 995 993  8388608 Feb 14 23:19 tempdb.mdf\n-rwxr-----. 1 995 993  8388608 Feb 14 23:19 templog.ldf<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">According to the output above we may claim this is a mismatch issue between uids\/guids of the mssql user across the cluster nodes. At this stage, I remembered performing some tests including creating some linux users before adding my fourth node leading to create a mismatch for the mssql user\u2019s uids\/gids. Just keep in mind that the SQL Server installation creates a mssql user by default with the next available uid\/gid. In my case uid and guid.<\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Let\u2019s compare mssql user uid\/gid from other existing nodes LINUX01 \/ LINUX02 and LINUX03:<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[mikedavem@linux04 ~]$ id mssql\nuid=997(mssql) gid=995(mssql) groups=995(mssql)\n[mikedavem@linux04 ~]$ ssh linux01 id mssql\n\u2026\n[root@linux04 ~]# ssh linux01 id mssql\nuid=995(mssql) gid=993(mssql) groups=993(mssql)\n\u2026\n[root@linux04 ~]# ssh linux02 id mssql\nuid=995(mssql) gid=993(mssql) groups=993(mssql)\n\u2026\n[root@linux04 ~]# ssh linux03 id mssql\nuid=995(mssql) gid=993(mssql) groups=993(mssql)<\/pre>\n<p>Ok this explains why I faced this permission issue. After investing some times to figure out how to get rid of this issue without changing the mssql user\u2019s uid\/guid, I\u00a0read some\u00a0discussions about using NFS4 which is intended to fix this uids\/gids mapping issue.\u00a0It seems to be perfect in my case! But firstly let\u2019s just confirm I\u2019m using the correct NFS version<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[mikedavem@linux04 ~]$ mount -v | grep nfs\nnfsd on \/proc\/fs\/nfsd type nfsd (rw,relatime)\n192.168.5.14:\/mnt\/sql_data_nfs on \/var\/opt\/mssql\/data type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.5.14,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.5.14)<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">Well, my current configuration is not ready to leverage NFS4 yet and some configuration changes seem to be required to address it. <\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Firstly, let\u2019s change fstype parameter of my FS resource to nfs4 to mount the NFS share with NFS4.<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[mikedavem@linux04 ~]$ sudo pcs resource show FS\n Resource: FS (class=ocf provider=heartbeat type=Filesystem)\n  Attributes: device=192.168.5.14:\/mnt\/sql_data_nfs directory=\/var\/opt\/mssql\/data fstype=nfs\n  Operations: start interval=0s timeout=60 (FS-start-interval-0s)\n              stop interval=0s timeout=60 (FS-stop-interval-0s)\n              monitor interval=20 timeout=40 (FS-monitor-interval-20)\n\n[mikedavem@linux04 ~]$ sudo pcs resource update FS fstype=nfs4\n[mikedavem@linux04 ~]$ sudo pcs resource restart FS\nFS successfully restarted<\/pre>\n<p>Then I had to perform some updates to my idmap configuration on both sides (NFS server and client as well) to make the mapping working correctly. The main steps were as follows:<\/p>\n<ul>\n<li>Enabling idmap with NFS4 (disabled by default in my case)<\/li>\n<li>Changing some parameters inside the \/etc\/idmap.conf<\/li>\n<li>Verifying idmap is running correctly.<\/li>\n<\/ul>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[root@nfs sql_data_nfs]# echo N &gt;  \/sys\/module\/nfsd\/parameters\/nfs4_disable_idmapping\n\u2026\n[root@nfs sql_data_nfs]# grep ^[^#\\;] \/etc\/idmapd.conf\n[General]\nDomain = dbi-services.test\n[Mapping]\nNobody-User = nobody\nNobody-Group = nobody\n[Translation]\nMethod = static\n\n[Static]\nmssql@dbi-services.test = mssql\ntestp@dbi-services.test = testp\n\u2026\n[root@nfs sql_data_nfs]# systemctl status nfs-idmap\n. nfs-idmapd.service - NFSv4 ID-name mapping service\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/nfs-idmapd.service; static; vendor preset: disabled)\n   Active: active (running) since Wed 2017-02-15 20:29:57 CET; 1h 39min ago\n  Process: 3362 ExecStart=\/usr\/sbin\/rpc.idmapd $RPCIDMAPDARGS (code=exited, status=0\/SUCCESS)\n Main PID: 3364 (rpc.idmapd)\n   CGroup: \/system.slice\/nfs-idmapd.service\n           \u2514\u25003364 \/usr\/sbin\/rpc.idmapd<\/pre>\n<p>At this point, listening user permissions shows nobody\/nobody meaning translation is not performed yet.<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[root@linux04 ~]# ls -lu \/var\/opt\/mssql\ntotal 16\ndrwxr-----. 2 nobody nobody 4096 Feb 15 19:00 data\n\u2026<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">I forgot to create a corresponding mssql user on the NFS service side. Let\u2019s do it:<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\"> [root@nfs sql_data_nfs]# groupadd mssql -g 993\n[root@nfs sql_data_nfs]# useradd -u 995 -g 993 mssql \u2013M<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">After remounting the NFS share, I finally got the expected output as shown below:<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[root@linux04 ~]# mount -o remount -t nfs4 192.168.5.14:\/mnt\/sql_data_nfs\/sqllinuxfci \/mnt\/testp\/\n\u2026\n[root@linux04 ~]# ls -lu \/var\/opt\/mssql\ntotal 16\ndrwxr-----. 2 mssql mssql 4096 Feb 15 19:00 data\n\u2026\n[root@linux04 ~]# ls -lu \/var\/opt\/mssql\/data\/*\n-rwxr-----. 1 mssql mssql  4194304 Feb 15 19:53 \/var\/opt\/mssql\/data\/master.mdf\n-rwxr-----. 1 mssql mssql  2097152 Feb 15 19:53 \/var\/opt\/mssql\/data\/mastlog.ldf\n-rwxr-----. 1 mssql mssql  8388608 Feb 15 19:53 \/var\/opt\/mssql\/data\/modellog.ldf\n-rwxr-----. 1 mssql mssql  8388608 Feb 15 19:53 \/var\/opt\/mssql\/data\/model.mdf\n-rwxr-----. 1 mssql mssql 13959168 Feb 15 19:53 \/var\/opt\/mssql\/data\/msdbdata.mdf\n-rwxr-----. 1 mssql mssql   786432 Feb 15 19:53 \/var\/opt\/mssql\/data\/msdblog.ldf\n-rwxr-----. 1 mssql mssql  8388608 Feb 15 19:53 \/var\/opt\/mssql\/data\/tempdb.mdf\n-rwxr-----. 1 mssql mssql  8388608 Feb 15 19:53 \/var\/opt\/mssql\/data\/templog.ldf<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">This time the translation is effective but let\u2019s perform another test by running the previous command as the mssql user<\/span><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">[root@linux04 ~]# runuser -l mssql -c 'ls -lu \/var\/opt\/mssql\/data\/*'\nls: cannot access \/var\/opt\/mssql\/data\/*: Permission denied<\/pre>\n<p><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">The problem starts when I try to access the database files despite the correct mapping configuration. I spent some <\/span>time <span style=\"color: #000000;\">to understand <\/span>that <span style=\"color: #000000;\">some misconceptions about how NFSv4 and magic mismatch uids\/gids fix <\/span>subsist<span style=\"color: #000000;\">. I admit the <\/span>main <\/span><a href=\"http:\/\/man7.org\/linux\/man-pages\/man5\/nfsidmap.5.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #0563c1; font-family: Calibri;\">documentation<\/span><\/a><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\"> is not clear about it but please, <\/span>feel <span style=\"color: #000000;\">free to comment if it is not the case. After digging into further pointers, I was able to understand that NFS itself <\/span>doesn\u2019t achieve authentication <span style=\"color: #000000;\">but delegates it down to the RPC mechanism. If we take a look down at the RPC\u2019s security, we may notice it hasn\u2019t <\/span>been <span style=\"color: #000000;\">updated to support such matching. Basically, it continues to use the historic authentication called AUTH_SYS meaning sending uids\/gis over the network. Translation work comes later through the idmap service. The only way to get rid of this issue would <\/span>be <span style=\"color: #000000;\">to prefer another protocol like <\/span><\/span><a href=\"http:\/\/www.ietf.org\/rfc\/rfc2203.txt\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #0563c1; font-family: Calibri;\">RPCSEC_GSS<\/span><\/a><span style=\"color: #000000; font-family: Calibri;\"> which includes authentication based on LDAP or Kerberos for example.<\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">\u00a0<\/span><span style=\"color: #000000; font-family: Calibri;\">The bottom line here is that SQL Server on Linux is not an exception of course. If we want to continue using basic Unix authentication, keeping synchronizing uids and guids across my cluster nodes seems to be a good way to go. Using Kerberos authentication in this case? This is another story that I will try to tell in another blog post!<\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Happy clustering on Linux!<\/span><\/p>\n<p><span style=\"float: none; background-color: #ffffff; color: #333333; cursor: text; font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none;\">By David Barbarin<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my previous blog post, I talked about SQL Server on Linux and high availability. During my test, I used a NFS server to share disk resources between my cluster nodes as described in the Microsoft documentation. A couple of days ago, I decided to add a fourth node (LINUX04) to my cluster infrastructure and [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":9794,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[38,464,84,1033,73,112,1034,1018,1019],"type_dbi":[],"class_list":["post-9793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-cluster","tag-failover-cluster","tag-high-availability","tag-idmap","tag-linux","tag-nfs","tag-nfs4","tag-pacemaker","tag-sql-server-vnext"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes\" \/>\n<meta property=\"og:description\" content=\"In my previous blog post, I talked about SQL Server on Linux and high availability. During my test, I used a NFS server to share disk resources between my cluster nodes as described in the Microsoft documentation. A couple of days ago, I decided to add a fourth node (LINUX04) to my cluster infrastructure and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-16T18:13:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-18T05:39:43+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"650\" \/>\n\t<meta property=\"og:image:height\" content=\"365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server Failover Cluster on Linux and synchronizing uids\\\/gids across nodes\",\"datePublished\":\"2017-02-16T18:13:43+00:00\",\"dateModified\":\"2023-07-18T05:39:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/\"},\"wordCount\":710,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\",\"keywords\":[\"Cluster\",\"Failover cluster\",\"High availability\",\"Idmap\",\"Linux\",\"NFS\",\"NFS4\",\"PaceMaker\",\"SQL Server vNext\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/\",\"name\":\"SQL Server Failover Cluster on Linux and synchronizing uids\\\/gids across nodes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\",\"datePublished\":\"2017-02-16T18:13:43+00:00\",\"dateModified\":\"2023-07-18T05:39:43+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg\",\"width\":650,\"height\":365},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Failover Cluster on Linux and synchronizing uids\\\/gids across nodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/microsoft-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes","og_description":"In my previous blog post, I talked about SQL Server on Linux and high availability. During my test, I used a NFS server to share disk resources between my cluster nodes as described in the Microsoft documentation. A couple of days ago, I decided to add a fourth node (LINUX04) to my cluster infrastructure and [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/","og_site_name":"dbi Blog","article_published_time":"2017-02-16T18:13:43+00:00","article_modified_time":"2023-07-18T05:39:43+00:00","og_image":[{"width":650,"height":365,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes","datePublished":"2017-02-16T18:13:43+00:00","dateModified":"2023-07-18T05:39:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/"},"wordCount":710,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg","keywords":["Cluster","Failover cluster","High availability","Idmap","Linux","NFS","NFS4","PaceMaker","SQL Server vNext"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/","name":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg","datePublished":"2017-02-16T18:13:43+00:00","dateModified":"2023-07-18T05:39:43+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-117-01-sqlfcionlinux-archi-e1487271274672.jpg","width":650,"height":365},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-failover-cluster-on-linux-and-synchronizing-uidsgids-across-nodes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server Failover Cluster on Linux and synchronizing uids\/gids across nodes"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9793"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9793\/revisions"}],"predecessor-version":[{"id":26801,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9793\/revisions\/26801"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/9794"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9793"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}