mssql-docker
mssql-docker copied to clipboard
FileStream issue
Does the feature "filestream" support in winodws container? If so, how to do it?
Even I enable the filestream feature but the error "FILESTREAM feature is disabled" is still occured.
P.S (1) Both of the images 2016-sp1-windowsservercore-10.0.14393.1715 and 2017-windowsservercore-10.0.14393.1715 I have tried.
(2) I used the attached file to enable the filestream feature
$instance = "MSSQLSERVER"
$wmi = Get-WmiObject -Namespace "ROOT\Microsoft\SqlServer\ComputerManagement13" -Class FilestreamSettings | where {$_.InstanceName -eq $instance}
$wmi.EnableFilestream(1, $instance)
Get-Service -Name $instance | Restart-Service
set-executionpolicy -executionpolicy unrestricted
Import-Module "sqlps" -DisableNameChecking
Invoke-Sqlcmd "EXEC sp_configure filestream_access_level, 2"
Invoke-Sqlcmd "RECONFIGURE"
Thank you!
Tried the exact same thing before finding this issue. But i also changed logon user for the sql service to try with LocalSystem and an added administrator but nothing worked. Realy interesting problem and need to get this to work.
Well. Actually, I also change the service account of mssqlserver to local administrator but the the filestream still doesn't work.
Is there any progress with this issue? I am stuck here as well.
While migrating existing solutions, being able to use FILESTRAM feature on Windows based SQL server is mandatory for me. Hence, I'd like to know whether (soon) progress with this issue can be expected. FILESTREAM needs to create a (SMB) share to work. A mssql container apperently does not have any file system shares nor were I able to create one with powershell. Are issues with the shares the reason why FILESTREAM cannot be created?
@ApolloCreek - probably not "soon". We are going to start working on an improved Windows container in the next few weeks, but the focus there will be on packaging, making it smaller, fixing some known issues, etc. Not sure we are going to get to filestream right away.
the "SERVER" service in Windows containers is disabled and won't work. FILESTREAM requires it, even when the files are stored locally. I think it's going to need a change in SQL to work right with local files
I've run into this as well. I tried enabling FILESTREAM the powershell way but AccessLevel
in the WMI settings never changes from 0. I also tried this in C# by setting AccessLevel
using the WMI interface provided by System.Management
but that fails with HRESULT 2147944514: The Server service is not started
As it is, I don't think its possible to get a SQL Server container running with FILESTREAM enabled. This is disappointing and hopefully it can be remedied soon.
For us this is a blocking issue when it comes to the adoption of mssql-docker
, we are heavily reliant on filestreams and are very interested in any updates regarding possible fixes for this problem.
@twright-msft Has there been any movement on this or is the status still the same?
@twright-msft Any idea if this was fixed?
@cameronmaxwell - this not yet supported on SQL Server containers.
@vin-yu @twright-msft Any idea if and when this will be supported? We are looking into utilizing SQL containers for our CI/CD pipelines, but this is preventing implementation.
Same problem here. Is there any workaround for this problem?
We could use FILESTREAM support as well. We'd like to simplify our development and testing environments with these images, but we need FILESTREAM support to run our application.
Any update on this? We could also use FILESTREAM.
We're also interested in this functionality, it would be very helpful
+1 here. I had to dismiss MSSQL for Docker as a testing solution due to lack of FileStream support.
+1
As a lot of other people here, we need FILESTREAM support in docker too.
Docker would be a great utility for our R&D, but lack of FILESTREAM is a deal breaker. We need FILESTREAM support.
OK, No FILESTREAM support on windows and linux will lose advantage
Any progress with it?
Like many people here, we need FILESTREAM support.
Still nothing? :(
I was working on very interesting thing in container and FILESTREAM was needed but knowing that its not yet supported is disheartening. Any idea when will it be supported? Its really annoying that 5 years ago people were reporting this and its still hasn't been made available to community
Thank you for the feedback regarding FILESTREAM support.
This particular issue was originally opened requesting FILESTREAM support for SQL Server on Windows containers. Unfortunately, we had decided to suspend the SQL Server on Windows containers program in July of 2021 - https://techcommunity.microsoft.com/t5/sql-server-blog/update-beta-program-for-sql-server-on-windows-container-is/ba-p/2516639. As such, this issue may be closed in the near future. There is a duplicate issue that is Linux specific however - https://github.com/microsoft/mssql-docker/issues/480.
For FILESTREAM support on Linux containers, as of the time of this message, that scenario is still not supported. We would encourage you to upvote the Ideas feedback item (https://feedback.azure.com/d365community/idea/4086746d-5925-ec11-b6e6-000d3a4f0da0) along with providing any additional details that you can regarding the workload and/or scenario which would require FILESTREAM/FILETABLE support from within a SQL Server on Linux container.
"Why do Linux containers not have support for FILESTREAM?" Great question. The TLDR answer is upvotes on the Ideas platform (formerly known as UserVoice) helps with driving the prioritization of blocking issues such as the one that this GitHub issue thread is based upon. The slightly longer answer (as of the date of this post) would be twofold.
-
Since the FILESTREAM feature is based on the WinFS (https://en.wikipedia.org/wiki/WinFS) code, it has tight integration with the NTFS and ReFS filesystems. This integration comes in the form of a Windows kernel filter driver, RsFX - https://learn.microsoft.com/sql/relational-databases/blob/filestream-sql-server). The current NTFS filesystem support in Linux does not support all of the semantics required by this driver (i.e. NTFS-3g https://github.com/tuxera/ntfs-3g#readme). We are investigating how filesystems like xfs could be leveraged but that works is still ongoing.
-
SQL Server on Linux is built on a hybrid technology that we refer to as SQLPAL (SQL Platform Abstraction Layer - https://cloudblogs.microsoft.com/sqlserver/2016/12/16/sql-server-on-linux-how-introduction/) as opposed to a direct port of SQL Server that executes natively on Linux. This essentially means that in addition to any Linux native filesystem changes, SQLPAL itself requires additional work as it is a user space construct with no kernel space component (https://learn.microsoft.com/en-us/archive/blogs/bobsql/sql-server-on-linux-elf-and-pe-images-just-work).
We do not have any timelines that we can share at this point in time, but still strongly encourage that you upvote the Ideas platform item and provide additional feedback.