<div dir="ltr">Was a volume with existing data got converted to sharding volume?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 27, 2021 at 5:06 AM Erik Jacobson &lt;<a href="mailto:erik.jacobson@hpe.com">erik.jacobson@hpe.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Shortly after the sharded volume is made, there are some fuse mount<br>
messages. I&#39;m not 100% sure if this was just before or during the<br>
big qemu-img command to make the 5T image<br>
(qemu-img create -f raw -o preallocation=falloc<br>
/adminvm/images/adminvm.img 5T)<br>
<br>
<br>
(from /var/log/glusterfs/adminvm.log)<br>
[2021-01-26 19:18:21.287697] I [fuse-bridge.c:5166:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.24 kernel 7.31<br>
[2021-01-26 19:18:21.287719] I [fuse-bridge.c:5777:fuse_graph_sync] 0-fuse: switched to graph 0<br>
[2021-01-26 19:18:23.945566] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-2: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.7 (00000000-0000-0000-0000-000000000000) [No data available]<br>
[2021-01-26 19:18:54.089721] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-0: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.85 (00000000-0000-0000-0000-000000000000) [No data available]<br>
[2021-01-26 19:18:54.089784] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-1: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.85 (00000000-0000-0000-0000-000000000000) [No data available]<br>
[2021-01-26 19:18:55.048613] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-1: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.88 (00000000-0000-0000-0000-000000000000) [No data available]<br>
[2021-01-26 19:18:55.355131] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-0: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.89 (00000000-0000-0000-0000-000000000000) [No data available]<br>
[2021-01-26 19:18:55.981094] W [MSGID: 114031] [client-rpc-fops_v2.c:2633:client4_0_lookup_cbk] 0-adminvm-client-0: remote operation failed. Path: /.shard/0cb55720-2288-46c2-bd7e-5d9bd23b40bd.91 (00000000-0000-0000-0000-000000000000) [No data available]<br>
......<br>
<br>
<br>
Towards the end (or just after, it&#39;s hard to tell) of the qemu-img<br>
create command, these msgs showed up in the adminvm.log. I just supplied<br>
the first few. There were many:<br>
<br>
<br>
[2021-01-26 19:28:40.652898] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/48bb5288-e27e-46c9-9f7c-944a804df361.1: dentry not found in 48bb5288-e27e-46c9-9f7c-944a804df361<br>
[2021-01-26 19:28:40.652975] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/931508ed-9368-4982-a53e-7187a9f0c1f9.3: dentry not found in 931508ed-9368-4982-a53e-7187a9f0c1f9<br>
[2021-01-26 19:28:40.653047] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/e808ecab-2e70-4ef3-954e-ce1b78ed8b52.4: dentry not found in e808ecab-2e70-4ef3-954e-ce1b78ed8b52<br>
[2021-01-26 19:28:40.653102] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/2c62c383-d869-4655-9c03-f08a86a874ba.6: dentry not found in 2c62c383-d869-4655-9c03-f08a86a874ba<br>
[2021-01-26 19:28:40.653169] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/556ffbc9-bcbe-445a-93f5-13784c5a6df1.2: dentry not found in 556ffbc9-bcbe-445a-93f5-13784c5a6df1<br>
[2021-01-26 19:28:40.653218] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/5d414e7c-335d-40da-bb96-6c427181338b.5: dentry not found in 5d414e7c-335d-40da-bb96-6c427181338b<br>
[2021-01-26 19:28:40.653314] W [MSGID: 101159] [inode.c:1212:__inode_unlink] 0-inode: be318638-e8a0-4c6d-977d-7a937aa84806/43364dc9-2d8e-4fca-89d2-e11dee6fcfd4.8: dentry not found in 43364dc9-2d8e-4fca-89d2-e11dee6fcfd4<br>
.....<br>
<br>
<br>
So now I installed Linux in to a VM using the above as the VM image.<br>
There were no additional fuse messages while the admin VM was being<br>
installed with our installer (via qemu on the same physical node the<br>
above messages appeared and same node where I ran qemu-img create).<br>
<br>
Rebooted the virtual machine and it booted fine. No new messages in<br>
fuse log. So now it&#39;s officially booted. This was &#39;reboot&#39; so qemu<br>
didn&#39;t restart.<br>
<br>
halted the vm with &#39;halt&#39;, then in virt-manager did a forced shut down.<br>
<br>
started vm from scratch.<br>
<br>
Still no new messages and it booted fine.<br>
<br>
Powered off a physical node and brought it back, still fine.<br>
Reset all physical nodes and brought them back, still fine.<br>
<br>
I am unable to trigger this problem. However, once it starts to go bad,<br>
it stays bad and stays bad across all the physical nodes. The kpartx<br>
mount root from within the image then umount it trick is only a<br>
temporary fix that doesn&#39;t persist beyond one boot once we&#39;re in the<br>
bad state.<br>
<br>
So something gets in to a bad state and stays that way but we don&#39;t know<br>
how to cause it to happen at will. I will continue to try to reproduce<br>
this as it&#39;s causing some huge problems in the field.<br>
<br>
<br>
<br>
<br>
On Tue, Jan 26, 2021 at 07:40:19AM -0600, Erik Jacobson wrote:<br>
&gt; Thank you so much for responding! More below.<br>
&gt; <br>
&gt; <br>
&gt; &gt;  Anything in the logs of the fuse mount? can you stat the file from the mount?<br>
&gt; &gt; also, the report of an image is only 64M makes me think about Sharding as the<br>
&gt; &gt; default value of Shard size is 64M.<br>
&gt; &gt; Do you have any clues on when this issue start to happen? was there any<br>
&gt; &gt; operation done to the Gluster cluster?<br>
&gt; <br>
&gt; <br>
&gt; - I had just created the gluster volumes within an hour of the problem<br>
&gt;   to test the vary problem I reported. So it was a &quot;fresh start&quot;.<br>
&gt; <br>
&gt; - It booted one or two times, then stopped booting. Once it couldn&#39;t<br>
&gt;   boot, all 3 nodes were the same in that grub2 couldn&#39;t boot in the VM<br>
&gt;   image.<br>
&gt; <br>
&gt; As for the fuse log, I did see a couple of these before it happened the<br>
&gt; first time. I&#39;m not sure if it&#39;s a clue or not.<br>
&gt; <br>
&gt; [2021-01-25 22:48:19.310467] I [fuse-bridge.c:5777:fuse_graph_sync] 0-fuse: switched to graph 0<br>
&gt; [2021-01-25 22:50:09.693958] E [fuse-bridge.c:227:check_and_dump_fuse_W] (--&gt; /usr/lib64/libglusterfs.so.0(_gf_log_callingfn+0x17a)[0x7f914e346faa] (--&gt; /usr/lib64/glusterfs/7.2/xlator/mount/fuse.so(+0x874a)[0x7f914a3d374a] (--&gt; /usr/lib64/glusterfs/7.2/xlator/mount/fuse.so(+0x91cb)[0x7f914a3d41cb] (--&gt; /lib64/libpthread.so.0(+0x84f9)[0x7f914cf184f9] (--&gt; /lib64/libc.so.6(clone+0x3f)[0x7f914c76afbf] ))))) 0-glusterfs-fuse: writing to fuse device failed: No such file or directory<br>
&gt; [2021-01-25 22:50:09.694462] E [fuse-bridge.c:227:check_and_dump_fuse_W] (--&gt; /usr/lib64/libglusterfs.so.0(_gf_log_callingfn+0x17a)[0x7f914e346faa] (--&gt; /usr/lib64/glusterfs/7.2/xlator/mount/fuse.so(+0x874a)[0x7f914a3d374a] (--&gt; /usr/lib64/glusterfs/7.2/xlator/mount/fuse.so(+0x91cb)[0x7f914a3d41cb] (--&gt; /lib64/libpthread.so.0(+0x84f9)[0x7f914cf184f9] (--&gt; /lib64/libc.so.6(clone+0x3f)[0x7f914c76afbf] ))))) 0-glusterfs-fuse: writing to fuse device failed: No such file or directory<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; I have reserved the test system again. My plans today are:<br>
&gt;  - Start over with the gluster volume on the machine with sles15sp2<br>
&gt;    updates<br>
&gt; <br>
&gt;  - Learn if there are modifications to the image (besides<br>
&gt;    mounting/umounting filesystems with the image using kpartx to map<br>
&gt;    them to force it to work). What if I add/remove a byte from the end<br>
&gt;    of the image file for example.<br>
&gt; <br>
&gt;  - Revert the setup to sles15sp2 with no updates. My theory is the<br>
&gt;    updates are not making a difference and it&#39;s just random chance.<br>
&gt;    (re-making the gluster volume in the process)<br>
&gt; <br>
&gt;  - The 64MB shard size made me think too!!<br>
&gt; <br>
&gt;  - If the team feels it is worth it, I could try a newer gluster. We&#39;re<br>
&gt;    using the versions we&#39;ve validated at scale when we have large<br>
&gt;    clusters in the factory but if the team thinks I should try something<br>
&gt;    else I&#39;m happy to re-build it!!!  We are @ 7.2 plus afr-event-gen-changes<br>
&gt;    patch.<br>
&gt; <br>
&gt; I will keep a better eye on the fuse log to tie an error to the problem<br>
&gt; starting.<br>
&gt; <br>
&gt; <br>
&gt; THANKS AGAIN for responding and let me know if you have any more<br>
&gt; clues!<br>
&gt; <br>
&gt; Erik<br>
&gt; <br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; On Tue, Jan 26, 2021 at 2:40 AM Erik Jacobson &lt;<a href="mailto:erik.jacobson@hpe.com" target="_blank">erik.jacobson@hpe.com</a>&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt;     Hello all. Thanks again for gluster. We&#39;re having a strange problem<br>
&gt; &gt;     getting virtual machines started that are hosted on a gluster volume.<br>
&gt; &gt; <br>
&gt; &gt;     One of the ways we use gluster now is to make a HA-ish cluster head<br>
&gt; &gt;     node. A virtual machine runs in the shared storage and is backed up by 3<br>
&gt; &gt;     physical servers that contribute to the gluster storage share.<br>
&gt; &gt; <br>
&gt; &gt;     We&#39;re using sharding in this volume. The VM image file is around 5T and<br>
&gt; &gt;     we use qemu-img with falloc to get all the blocks allocated in advance.<br>
&gt; &gt; <br>
&gt; &gt;     We are not using gfapi largely because it would mean we have to build<br>
&gt; &gt;     our own libvirt and qemu and we&#39;d prefer not to do that. So we&#39;re using<br>
&gt; &gt;     a glusterfs fuse mount to host the image. The virtual machine is using<br>
&gt; &gt;     virtio disks but we had similar trouble using scsi emulation.<br>
&gt; &gt; <br>
&gt; &gt;     The issue: - all seems well, the VM head node installs, boots, etc.<br>
&gt; &gt; <br>
&gt; &gt;     However, at some point, it stops being able to boot! grub2 acts like it<br>
&gt; &gt;     cannot find /boot. At the grub2 prompt, it can see the partitions, but<br>
&gt; &gt;     reports no filesystem found where there are indeed filesystems.<br>
&gt; &gt; <br>
&gt; &gt;     If we switch qemu to use &quot;direct kernel load&quot; (bypass grub2), this often<br>
&gt; &gt;     works around the problem but in one case Linux gave us a clue. Linux<br>
&gt; &gt;     reported /dev/vda as only being 64 megabytes, which would explain a lot.<br>
&gt; &gt;     This means the virtual machine Linux though the disk supplied by the<br>
&gt; &gt;     disk image was tiny! 64M instead of 5T<br>
&gt; &gt; <br>
&gt; &gt;     We are using sles15sp2 and hit the problem more often with updates<br>
&gt; &gt;     applied than without. I&#39;m in the process of trying to isolate if there<br>
&gt; &gt;     is a sles15sp2 update causing this, or if we&#39;re within &quot;random chance&quot;.<br>
&gt; &gt; <br>
&gt; &gt;     On one of the physical nodes, if it is in the failure mode, if I use<br>
&gt; &gt;     &#39;kpartx&#39; to create the partitions from the image file, then mount the<br>
&gt; &gt;     giant root filesystem (ie mount /dev/mapper/loop0p31 /mnt) and then<br>
&gt; &gt;     umount /mnt, then that physical node starts the VM fine, grub2 loads,<br>
&gt; &gt;     the virtual machine is fully happy!  Until I try to shut it down and<br>
&gt; &gt;     start it up again, at which point it sticks at grub2 again! What about<br>
&gt; &gt;     mounting the image file makes it so qemu sees the whole disk?<br>
&gt; &gt; <br>
&gt; &gt;     The problem doesn&#39;t always happen but once it starts, the same VM image has<br>
&gt; &gt;     trouble starting on any of the 3 physical nodes sharing the storage.<br>
&gt; &gt;     But using the trick to force-mount the root within the image with<br>
&gt; &gt;     kpartx, then the machine can come up. My only guess is this changes the<br>
&gt; &gt;     file just a tiny bit in the middle of the image.<br>
&gt; &gt; <br>
&gt; &gt;     Once the problem starts, it keeps happening except temporarily working<br>
&gt; &gt;     when I do the loop mount trick on the physical admin.<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     Here is some info about what I have in place:<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     nano-1:/adminvm/images # gluster volume info<br>
&gt; &gt; <br>
&gt; &gt;     Volume Name: adminvm<br>
&gt; &gt;     Type: Replicate<br>
&gt; &gt;     Volume ID: 67de902c-8c00-4dc9-8b69-60b93b5f6104<br>
&gt; &gt;     Status: Started<br>
&gt; &gt;     Snapshot Count: 0<br>
&gt; &gt;     Number of Bricks: 1 x 3 = 3<br>
&gt; &gt;     Transport-type: tcp<br>
&gt; &gt;     Bricks:<br>
&gt; &gt;     Brick1: 172.23.255.151:/data/brick_adminvm<br>
&gt; &gt;     Brick2: 172.23.255.152:/data/brick_adminvm<br>
&gt; &gt;     Brick3: 172.23.255.153:/data/brick_adminvm<br>
&gt; &gt;     Options Reconfigured:<br>
&gt; &gt;     performance.client-io-threads: on<br>
&gt; &gt;     nfs.disable: on<br>
&gt; &gt;     storage.fips-mode-rchecksum: on<br>
&gt; &gt;     transport.address-family: inet<br>
&gt; &gt;     performance.quick-read: off<br>
&gt; &gt;     performance.read-ahead: off<br>
&gt; &gt;     performance.io-cache: off<br>
&gt; &gt;     performance.low-prio-threads: 32<br>
&gt; &gt;     network.remote-dio: enable<br>
&gt; &gt;     cluster.eager-lock: enable<br>
&gt; &gt;     cluster.quorum-type: auto<br>
&gt; &gt;     cluster.server-quorum-type: server<br>
&gt; &gt;     cluster.data-self-heal-algorithm: full<br>
&gt; &gt;     cluster.locking-scheme: granular<br>
&gt; &gt;     cluster.shd-max-threads: 8<br>
&gt; &gt;     cluster.shd-wait-qlength: 10000<br>
&gt; &gt;     features.shard: on<br>
&gt; &gt;     user.cifs: off<br>
&gt; &gt;     cluster.choose-local: off<br>
&gt; &gt;     client.event-threads: 4<br>
&gt; &gt;     server.event-threads: 4<br>
&gt; &gt;     cluster.granular-entry-heal: enable<br>
&gt; &gt;     storage.owner-uid: 439<br>
&gt; &gt;     storage.owner-gid: 443<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     libglusterfs0-7.2-4723.1520.210122T1700.a.sles15sp2hpe.x86_64<br>
&gt; &gt;     glusterfs-7.2-4723.1520.210122T1700.a.sles15sp2hpe.x86_64<br>
&gt; &gt;     python3-gluster-7.2-4723.1520.210122T1700.a.sles15sp2hpe.noarch<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     nano-1:/adminvm/images # uname -a<br>
&gt; &gt;     Linux nano-1 5.3.18-24.46-default #1 SMP Tue Jan 5 16:11:50 UTC 2021<br>
&gt; &gt;     (4ff469b) x86_64 x86_64 x86_64 GNU/Linux<br>
&gt; &gt;     nano-1:/adminvm/images # rpm -qa | grep qemu-4<br>
&gt; &gt;     qemu-4.2.0-9.4.x86_64<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     Would love any advice!!!!<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     Erik<br>
&gt; &gt;     ________<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt;     Community Meeting Calendar:<br>
&gt; &gt; <br>
&gt; &gt;     Schedule -<br>
&gt; &gt;     Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC<br>
&gt; &gt;     Bridge: <a href="https://meet.google.com/cpu-eiue-hvk" rel="noreferrer" target="_blank">https://meet.google.com/cpu-eiue-hvk</a><br>
&gt; &gt;     Gluster-users mailing list<br>
&gt; &gt;     <a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
&gt; &gt;     <a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; --<br>
&gt; &gt; Respectfully<br>
&gt; &gt; Mahdi<br>
________<br>
<br>
<br>
<br>
Community Meeting Calendar:<br>
<br>
Schedule -<br>
Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC<br>
Bridge: <a href="https://meet.google.com/cpu-eiue-hvk" rel="noreferrer" target="_blank">https://meet.google.com/cpu-eiue-hvk</a><br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
<a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">--<div><a href="https://kadalu.io" target="_blank">https://kadalu.io</a></div><div>Container Storage made easy!</div><div><br></div></div></div>