Solved

Ubuntu - Multipathing and Partition/Installing Filesystem on a Volume


Userlevel 7
Badge +17

This is more of a Linux question, but it’s for use with Veeam, so thought I’d try posting here to see if anyone else ran into my issue & what was done to resolve it. I am having the darndest time getting a Volume from my storage array (Nimble) to partition correctly in Ubuntu 22.04 so I can use it as a Veeam Repository. Using fdisk to partition, it seems to work, but then I get the following error after ‘writing’ the task:

fdisk error

I reboot, then go to attempt to install a filesystem on the partition, and get the following error:

filesystem busy

Anything I attempt to do with it, the OS says it’s busy. I’ve spent hrs internet-searching to no avail. About the only thing I believe it stems from is the multipath daemon somehow. Do people just have 1 HBA connected to their arrays for Repos?...surely not?

Umm..help? 😂

icon

Best answer by coolsport00 6 December 2023, 15:56

View original

10 comments

Userlevel 7
Badge +20

We use RHEL and have multipath enabled to a variety of arrays without issue. Best of luck getting an answer.  If I come across anything will post back.

Userlevel 7
Badge +7

How is the multipathing setup? Is it Active-Active or Round-Robin?

Userlevel 7
Badge +20

Morning, are you trying to utilise the device directly or wrap it into an LVM first?

Userlevel 7
Badge +9

Hi @coolsport00, from the error message, I hope this helps:  https://elkano.org/blog/mkfs-xfs-open-devdevice-device-resource-busy/

Userlevel 7
Badge +17

Good morning/afternoon everyone. Thank you all for chiming in! This has been driving me completely insane! (more than normal 😉)

@dips - I’m using Nimble-recommended configs in the multipath config file. See pp. 66-67 in this Guide. Looks like it is ALUA? (active-active?)

@MicoolPaul - I’m directly connecting the Nimble Volume. No LVMs configured.

@Iams3le - that command (I saw that post & tried it last night) seems to disconnect my path, thus not allowing me to place a filesystem on the Volume. Thanks though.

Thanks!

Userlevel 7
Badge +17

Hey all..thought I’d come back and share I finally got this to work. I had to pick my ‘storage implementation on Linux steps’ apart piece by piece to see what step(s) the issue laid. I was able to get it all to work fantastic when using only 1 adapter. So as I shared, the issue obviously had to do with multipathing, or at least with how multipathing works in Linux. Still learning this!

Nimble has a “toolkit” installer for Linux which includes their “network connection manager” tool to assist with multipathing. In their documentation to partition/filesystem connected devices, they state to use the device: /dev/nimblestorage/<device-name> , which is basically a symbolic link of sorts similar to /dev/mapper/<device-name>, which then points to a dm-# device. Though fdisk displays an annoying warning message after writing a partition to a device, which doesn’t occur when using a local disk or connecting to a san-based LUN using 1 adapter, I think the partition still gets created fine. Why the fdisk warning/error occurs, I still don’t know. For my own anal-ness and sanity, I switched this task to using parted, which also allows me to put a GPT table on the disk as well, so it works out better 😊

To place a filesystem on the device, I can’t use the Nimble-based device name or the “Resource or device is busy” error occurs. And, when I attempted to not use the Nimble name in my testing, but still getting the error, I was using the wrong /dev/mapper/<device-name> , thus why I was getting the “Resource or device busy” error for it too. The device was basically a name “higher” up in the device name “tree”...analogous to using /dev/sdb instead of /dev/sdb1. After partitioning the device, the Linux device mapper adds a -part1 at the end of the device name. I wasn’t using that (my tab-completion didn’t add it, so basically somewhat of a typing error on my part). When I did use the /dev/mapper/<dev-name>-part1 device to place a filesystem on the device, it worked fine. I was then able to proceed as normal mounting the device, then adding my server to Veeam and putting backups on the storage (Repo).

Thanks again for the input. You all are fantastic! 

Userlevel 7
Badge +20

Glad to hear you got it to work Shane and the solution.  👍🏼

Userlevel 7
Badge +7

Thanks for the update Shane :) 

Userlevel 7
Badge +17

Glad I figured it out too! And glad it was an (cough) “easy” fix? 😆 Almost feel silly… 😊

Userlevel 7
Badge +7

Glad I figured it out too! And glad it was an (cough) “easy” fix? 😆 Almost feel silly… 😊

Nah, no need to feel silly. 

That is how we learn and I bet it will stick in your mind for next time!

Comment